Я работаю над monorepo, который состоит из нескольких пакетов, созданных с использованием gulp с webpack и babel (через babel-loader).
В настоящее время у меня возникают трудности с получением babel для подтверждения конфигурации master .babelrc
файл, который у меня есть в корневом каталоге monorepo.
Я полагаю, что проблема возникает из-за того, что gulp заменяет CWD на собственный пакет, поскольку он содержит gulpfile
.Например:
$ npx gulp -f packages/servers/gateway/gulpfile.js dev
[17:36:20] Working directory changed to ~/prj/demo/packages/servers/gateway
Приведенные выше сообщения приводят к таким ошибкам, как:
Error: Module build failed (from ~/prj/demo/node_modules/babel-loader/lib/index.js):
SyntaxError: ~/prj/demo/packages/servers/gateway/src/main.js: Unexpected token, expected "{" (11:21)
9 | import * as lc from "libcommon";
10 |
> 11 | async function main(): Promise<void> {
Когда я перемещаю файл .babelrc в каталог пакета, компиляция завершается успешно и артефакт сборки выполняется правильно.Аналогично, если я укажу предустановки и настройки плагинов непосредственно в правиле загрузчика веб-пакетов, все будет хорошо.
Для справки, вот файл .babelrc, который я использую:
{
"presets": [
"@babel/env",
],
"plugins": [
"@babel/plugin-transform-flow-strip-types",
"@babel/plugin-proposal-export-default-from",
"@babel/plugin-proposal-export-namespace-from",
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-regenerator",
"@babel/plugin-transform-runtime",
]
}
Как я могу сделать так, чтобы babel просматривал файл .babelrc вплоть до корневого каталога monorepo независимо от того, какой CWD он видит?