1. Lerna 使用说明
1.1. 使用教程
1.1.1. 安装
$ npm install --global lerna
1.1.2. 起步
创建项目
$ mkdir lerna-example && cd lerna-example
$ npx lerna init
1.1.3. 添加第一个包
- 命令:
lerna create <name> [loc]
- 文档: https://github.com/lerna/lerna/tree/master/commands/create#readme
举例
这里包名为 lerna-pkg-util
lerna create lerna-pkg-util
1.1.4. 添加依赖
- 命令:
lerna add <pkg> [globs..]
- 文档:https://github.com/lerna/lerna/tree/master/commands/add#readme
举例
这里往 lerna-pkg-util
包添加依赖 dayjs
lerna add dayjs --scope=lerna-pkg-util
如果是 dev 依赖加上命令
lerna add gulp --scope=lerna-pkg-util --dev
1.1.5. 安装依赖
- 命令:
lerna bootstrap
- 文档:https://github.com/lerna/lerna/tree/master/commands/bootstrap#readme
1.1.6. 包发布
- 命令:
lerna publish [bump]
- 文档:https://github.com/lerna/lerna/tree/master/commands/publish#readme
推荐采用 lerna publish from-package --yes
方式来发布,因为如果直接采用 lerna publish
与 lerna publish from-git
则需要 git commit 没提交,才能 publish
成功。而采用 lerna publish from-package --yes
则只需要 npm
包的版本号没有发不过,则可以继续发布。这样很方便集成在 CI
里。
1.1.7. 常见问题
1. 如何把 node_modules
安装到根目录
在项目 lerna.json
增加如下配置
"command": {
"bootstrap": {
"hoist": true
}
}
2. 如何解决 CI
环境下发布权限问题?
在 lerna
项目根目录下,创建 .npmrc
,里面代码如下:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
在 npmjs
后台创建 Access Tokens
,然后在 CI
设置 NPM_TOKEN
的环境变量为 Access Tokens
的值即可。
1.1.8. 参考资料
官网:https://lerna.js.org/ Github:https://github.com/lerna/lerna