如何停止Babel忽略.babelrc配置文件?

时间:2019-03-25 17:48:14

标签: babel babel-loader

我正在研究一个monorepo,其中包含几个使用gulp和webpack和babel(通过babel-loader)构建的软件包。

目前,我很难让babel确认我在monorepo的根目录中拥有的主.babelrc配置文件。

我认为问题是由于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文件移动到程序包的目录中时,编译成功并且构建工件正确运行。同样,如果我直接在webpack babel-loader规则中指定预设和插件设置,那就很好了。

作为参考,这是我正在使用的.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始终在.remote的根目录中查找.babelrc文件,而不管其看到的CWD是什么?

0 个答案:

没有答案