Lerna 可以将多个 javascript 项目管理在一个 git 仓库里。
以下分创建过程和使用两部分来说。
本文代码见:https://github.com/MarshalW/monorepo-lerna/tree/v1.0.1
创建
执行命令:
1 | # 安装 lerna |
根目录下的 tsconfig.json,是包括所有 typescript 子项目的公共配置:
1 | { |
typescript 子项目的 tsconfig.json
1 | { |
子项目的 package.json
1 | { |
剩下的就是写代码了,这里略了。
使用
在此项目中有 2 个 package:
1 | $ lerna list |
安装各个 package 的依赖包,以及它们之间的依赖:
1 | $ lerna bootstrap |
修改某个 package 后,需要 git 提交代码,否则无法执行发布流程。
发布:
1 | $ npm run publish |
将会交互方式设置 package 新版本,然后发布到 npm 上。
列出当前测试环境信息:
1 | $ lerna info |
使用:
1 | # 安装 mw-simple-service |