2.4 KiB
2.4 KiB
nav | group | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
|
lerna
介绍
lerna 是一个包管理工具,方便在大型开源项目中不需要手动开启多个仓库
使用方法
安装
npm i lerna -g
创建子项目
lerna create {packageName}
添加依赖
// 此处用eslint作为案例
// 所有 package 都装
lerna add eslint
// 只有 package1 安装
lerna add eslint --scope=package1
// 符合 prefix 的包都会安装
lerna add esint packages/prefix-*
-dev:添加到 devDependencies --exact:只安装特定版本
执行 npm script 命令
// 执行所有子项中的 test
lerna run test
// 执行 package1 中的 test
lerna run --scope package1 test
// 只执行除了匹配package-*外项目中的 test
lerna run --ignore package-* test
查看哪些包需要发布
lerna updated
- 决定哪一个包需要被publish
发布依赖包
learna publish
建议使用 independent 模式,独立对每个依赖包做管理
--npm-client=cnpm 指定源
常见命令
命令 | 说明 |
---|---|
lerna bootstrap | 安装依赖 |
lerna clean | 删除各个包下的node_modules |
lerna init | 创建新的lerna库 |
lerna list | 显示package列表 |
lerna changed | 显示自上次relase tag以来有修改的包, 选项通 list |
lerna diff | 显示自上次relase tag以来有修改的包的差异, 执行 git diff |
lerna exec | 在每个包目录下执行任意命令 |
lerna run | 执行每个包package.json中的脚本命令 |
lerna add | 添加一个包的版本为各个包的依赖 |
lerna import | 引入package |
lerna link | 链接互相引用的库 |
lerna create | 新建package |
lerna publish | 发布 |
官方文档
http://www.febeacon.com/lerna-docs-zh-cn/
Q&A
1. 发布包提示lerna ERR! ENOREMOTEBRANCH Branch 'master' doesn't exist in remote 'origin'.
git remote -v 查看是否是 origin 指向的分支,推送最新分支 lerna publish
2. lerna ERR! E402 You must sign up for private packages
在相应包的 package.json 添加
{
...
"publishConfig": {
"access": "public"
}
}
使用father打包报错
如果是使用的 yarn 安装的包,改成 cnpm 安装,再试一次