lerna 是多项目在一个 git 空间下管理的工具。 yarn 的 workspace 也有同样的功效。
一般是 yarn 用来跑项目,lerna 用来 npm 发版
package.json
{
"name": "root",
"private": true,
"workspaces": ["packages/*"], // 这个配置是给yarn用的
"devDependencies": {
"lerna": "^4.0.0"
}
}lerna.json
{
"packages": [
"packages/*"
],
"npmClient": "yarn", // 这里指定使用yarn去管理包
"useWorkspaces": true, // 使用yarn的workspace管理包
"version": "0.0.0"
}配置好上述之后,直接执行yarn会安装所有的子项目的依赖,并且把公共依赖抽出来到跟项目的node_modules下去,子项目里能复用的依赖会link到根目录的node_modules去。
常用指令:
yarn workspace xxx run dev,这里的xxx是子项目package.json中的name。当然也可以cd进子项目直接运行yarn run dev,效果一样。lerna import ../someProgram,这里的../someProgram是要导入到主工程的子项目。参数详见文档