monorepo之lerna
lerna 学习
lerna all in one的code manage。将系统中的所有代码都放在一个项目中。
lerna是一种管理工具,针对使用git和npm的多软件包代码仓库的工作流进行优化
- 首先lerna是对多软件包进行管理
- 可以对git和npm的流程进行优化
所以所有的命令就分成了三种lerna本身相关,包管理,流程管理
lerna开始
lerna init初始化项目
lerna init --independent 该配置项可以让模块单独发布
添加共依赖
lerna add loash
对某个子系统添加依赖
lerna add jquery --scope=xxxxx
xxxxx对应的是package.json中的的name
子模块依赖同一个lerna项目中其他模块
lerna add xxxxA --scope=xxxxB
xxxxA,xxxxB是package.json中的的name
这种依赖不会放到xxxxxB中的node_modules中,但是会添加到xxxxxB的package.json中去,他会自动检测到xxxxA隶属于当前项目,会采用symlink的方式关联过去
安装依赖
lerna bootstrap
删除依赖
lerna exec --scope=@fengyinchao/modulea npm uninstall husky
批量运行script脚本
lerna run test 运行所有模块中 test 命令
lerna run --scope=xxxB test 运行模块XXXB中的test模块
抽离公共模块
lerna bootstrap --hoist
更新公共依赖
- 安装
lerna-update-wizard - 执行
npm install --save-dev leran-update-wizard
./node_modules/.bin/lernaupdate
learn启动
启动项目一定要通过执行顶部的package.json中的script来执行子系统

浙公网安备 33010602011771号