跨越monorepo的包/组件运行Babel

时间:2017-11-07 14:24:31

标签: reactjs babeljs package.json

我正在尝试构建一个React组件库,但每个组件都有自己独特的依赖项。为了保持整洁,我使用了Yarn的工作区开始了monorepo。它目前看起来像这样:

components
    component1
        src
            index.js
        dist ???
        package.json
    component2
        src
            index.js
        dist ???
        package.json
node_modules
package.json
.babelrc
etc.

我希望能够在根级运行Babel命令,将每个src/index.js编译为其相对dist/index.js。这可能吗?或者,任何人都可以推荐一个可以迭代这个的工具吗?

1 个答案:

答案 0 :(得分:4)

想出来。在根级别安装Lerna(使用Workspace标志,以允许它安装)。

yarn add --dev lerna -W

初始化lerna。

node_modules/lerna/bin/lerna.js init

更新lerna.json以指向“components”目录。

{
  "lerna": "2.5.1",
  "packages": ["components/*"],
  "version": "0.0.0"
}

将脚本添加到根级package.json

"scripts": {
  ...
  "build-components": "NODE_ENV=production lerna exec --parallel -- babel src -d dist",
  ...
},