Как остановить Babel, игнорируя конфигурационные файлы .babelrc? - PullRequest
0 голосов
/ 25 марта 2019

Я работаю над 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 он видит?

...