Lerna是一个基于git和npm来管理多个包工作流的工具(monorepo),解决多个包之间的依赖问题,像React,Vue,Babel都在使用lerna管理多包
安装Lerna
npm install –global lerna
新建git仓库(初始化)
git init lerna-demo
初始化Lerna仓库
lerna init
创建新包
lerna create demoPackage
显示全部已经安装的包
lerna list
依赖处理(通过软链接方式将多个package关联起来)
lerna bootstrap
添加包到外层的node_modules
lerna add axios
移除所有packages下的node_modules(不会移除根目录的)
lerna clean
发布package(不会发布标记为private的包)
lerna publish
查看上一次有修改的包的差异
lerna diff
注意:全部子包会放在packages/目录下,lerna.json就是lerna的配置文件
lerna有两个管理模式,分别是固定模式(默认模式)和独立模式
固定模式将全部包版本绑定在一起,如果只更新一个包,将会更新对应包的版本到新的版本号
独立模式:init的时候使用–independent参数,独立模式允许对每个库单独改变版本号,每次发布的时候只需要为每个改动的库指定版本号