一个monorepo中可以有多个babel.config.js吗?

时间:2018-09-27 15:32:49

标签: reactjs babeljs monorepo

我有一个具有以下结构的monorepo

babel.config.js
packages/
|---mobile/
   |----package.json
   |----src/index.js

|---desktop/
   |----package.json
   |----src/index.js

|---server/
   |----package.json
   |----src/index.js

因此,我对babelmobile软件包的desktop配置是相同的,而server软件包的配置却不同。

现在,如何完成该配置?我可以想到的一种解决方案是,在monorepo的根部有一个babel.config.js,它将具有mobiledesktop软件包的配置以及server的单独配置在babel.config.js包级别的server中打包。我不确定,我们甚至可以有多个babel.config.js

2 个答案:

答案 0 :(得分:1)

我个人认为使用单独的文件会引起混乱。假设您已经以一种可以正常工作的方式设置了系统,并且只是在询问如何为不同的位置指定不同的配置,则可以使用"overrides"选项。例如,您的配置可以完成

module.exports = {
  overrides: [{
    test: [
      './desktop',
      './mobile',
    ],

    // put all your normal babel options for these folders here
  }, {
    test: [
      './server',
    ],

    // put all your normal babel options for the server here
  }],
};

答案 1 :(得分:0)

是的,您可以通过拥有多个配置文件来实现您的要求。在babel文档中将其称为与文件相关的配置。

在您的每个目录(移动设​​备,台式机,服务器)中创建.babelrc或.babelrc.js文件

有关更多详细信息,请参见https://babeljs.io/docs/en/next/config-files