#javascript #babeljs #babel-plugin #babel-plugin-module-resolver
#javascript #babeljs #babel-плагин #babel-plugin-module-resolver
Вопрос:
Вот структура моего проекта:
cloudRun
distApp // TRANSPILED APP FILES FROM ./src
distService // TRANSPILED BACKEND FILES FROM ./cloudRun/src
src // SOURCE FILES FOR THE BACKEND CODE
index.js // INDEX.JS FOR THE BACKEND CODE
babel.config.js // CONFIG FOR THE BABEL TRANSPILE SCRIPT
src // SOURCE FILES FOR THE APP
index.js // INDEX.JS FOR THE APP CODE
package.json // THIS IS THE MAIN PROJECT package.json
Я постараюсь быть очень кратким и понятным.
В обоих index.js
(приложение и серверный код) Я использую псевдонимы путей в исходном коде.
Например:
./src/some-folder/some-file.js
import xxx from "@src/hooks/someHoot";
// IN THE TRANSPILED VERSION @src MUST BE CONVERTED TO ./cloudRun/distApp
А также, например:
./cloudRun/src/some-folder/some-file.js
import xxx from "@src/hooks/someHoot";
// IN THE TRANSPILED VERSION @src MUST BE CONVERTED TO ./cloudRun/distApp
Но почему-то у меня возникают проблемы при настройке module-resolver
babel.config.js
. Либо я заставляю его правильно работать с псевдонимами путей, присутствующими на ./src
(а псевдонимы путей на ./cloudRun/src
все неправильные на 1 уровень), либо наоборот.
Например:
.cloudRun/babel.config.js
plugins = [
["module-resolver", {
"alias": {
"@src" : "./distApp",
"@hooks" : "./distApp/hooks",
}
}]
];
Это работает для ./src
файлов. Но все файлы из ./cloudRun/src
неверны на 1 уровень выше.
А если я перейду на это:
.cloudRun/babel.config.js
plugins = [
["module-resolver", {
"alias": {
"@src" : "./cloudRun/distApp",
"@hooks" : "./cloudRun/distApp/hooks",
}
}]
];
Тогда он отлично работает для ./cloudRun/src
файлов. Но все файлы из ./src
будут неправильными на 1 уровень ниже.
Я думал, что я мог бы исправить это с "root"
помощью опции в конфигурации модуля-преобразователя. Но я пока не смог заставить его работать.
Может быть, что-то вроде этого:
.cloudRun/babel.config.js
plugins = [
["module-resolver", {
"root": ["./cloudRun"], // SET A NEW ROOT HERE
"alias": {
"@src" : "./distApp",
"@hooks" : "./distApp/hooks",
}
}]
];
Я пробовал много вещей внутри "root"
конфигурации. Но пока это, похоже, не имеет никакого значения.
Вот как я запускаю babel:
// SCRIPTS FROM ./package.json
babel src --out-dir cloudRun/distApp --config-file ./cloudRun/babel.config.js
babel cloudRun/src --out-dir cloudRun/distService --config-file ./cloudRun/babel.config.js