lerna包管理

简介

lerna是一个用于管理包含多个package结构的代码仓库的工具。

安装

1
$ npm install lerna -g

初始化项目

1
$ lerna init

设置lerna.json文件

1
2
3
4
5
6
7
8
9
10
11
12
{
"version": "1.0.0",
"npmClient": "yarn",
"command": {
"publish": {
"ignoreChanges": ["ignored-file", "*.md"]
}
},
"packages": [
"packages/*"
]
}

字段说明:

key value
version 当前仓库版本,当设为independent时开启独立模式
npmClient 执行命令的client,默认为npm,可以设为yarn
command.publish.ignoreChanges 设置不会包含进lerna change/publish操作的文件路径,使用它来避免一些非重要改动时的版本更新,比如更新README.md中的拼写错误
packages 用于定位package的文件路径

使用

创建包,会在packages下面创建这个依赖包

1
$ lerna create xxx

添加依赖

1
$ lerna add [@version] [--dev] [--exact]

--dev--exact 等同于 npm install 里的 --dev—exact

当我们执行此命令后,将会执行下面那 2 个动作:

  1. 在每一个符合要求的模块里安装指明的依赖包,类似于在指定模块文件夹中执行 npm install <package>
  2. 更新每个安装了该依赖包的模块中的 package.json 中的依赖包信息。