Проблема
Вы разрабатываете проект с разветвленной структурой каталогов и у вас есть масса импорта. Где-то там вы, вероятно, заметили, что пишете такой код:
import compose from '../../src/components/utils/compose'; import { isDesktopView } from '../../src/components/utils/desktop-only'; import { TEXT_PALETTE } from '../../src/theme/common';
Это беспорядочно, глядя на ../../../, вы не можете сказать вам, где находится импорт, кроме того, что он далеко. Хуже того, если вы когда-нибудь решите переместить папки или захотите скопировать и вставить импорт в другой файл, настройка количества ../ записей становится огромной проблемой.
Давайте воспользуемся плагином babel для разрешения пользовательских модулей в Next JS.
Реализация
Обновление:
В последней версии NextJs 9.4.4 вам не нужно устанавливать плагин babel.
Просто сделайте jsconfig.json
(проекты JS) или tsconfig.json
(проекты TS).
И добавьте следующую конфигурацию (при условии, что папка src существует в корне проекта)
// tsconfig.json or jsconfig.json { "compilerOptions": { "baseUrl": ".", "paths": {
"@utils/*": ["src/components/utils/*"], "@components/*": ["src/components"]} } }
Также нет необходимости создавать отдельный файл `.babelrc`
̶I̶n̶s̶t̶a̶l̶l̶ ̶b̶a̶b̶e̶l̶-̶p̶l̶u̶g̶i̶n̶-̶m̶o̶d̶u̶l̶e̶-̶r̶e̶s̶o̶l̶v̶e̶r̶ ̶a̶s̶ ̶y̶o̶u̶r̶ ̶d̶e̶p̶e̶n̶d̶e̶n̶c̶y̶ ̶i̶n̶ ̶y̶o̶u̶r̶ ̶N̶e̶x̶t̶ ̶J̶S̶ ̶p̶r̶o̶j̶e̶c̶t̶.̶
̶A̶d̶d̶ ̶.̶b̶a̶b̶e̶l̶r̶c̶ ̶f̶i̶l̶e̶ ̶i̶n̶ ̶y̶o̶u̶r̶ ̶N̶e̶x̶t̶J̶S̶ ̶p̶r̶o̶j̶e̶c̶t̶
̶N̶o̶t̶e̶-̶ ̶N̶e̶x̶t̶J̶S̶ ̶f̶i̶l̶e̶ ̶d̶o̶e̶s̶ ̶n̶o̶t̶ ̶n̶e̶e̶d̶ ̶.̶b̶a̶b̶e̶l̶r̶c̶ ̶b̶y̶ ̶d̶e̶f̶a̶u̶l̶t̶.̶ ̶I̶t̶ ̶u̶s̶e̶s̶ ̶”̶n̶e̶x̶t̶/̶b̶a̶b̶e̶l̶”̶ ̶p̶r̶e̶s̶e̶t̶ ̶t̶o̶ ̶t̶r̶a̶n̶s̶p̶i̶l̶e̶.̶
̶A̶d̶d̶ ̶f̶o̶l̶l̶o̶w̶i̶n̶g̶ ̶i̶n̶ ̶y̶o̶u̶r̶ ̶.̶b̶a̶b̶e̶l̶r̶c̶
И это все.
Вы можете начать импорт модулей, используя этот псевдоним.