monorepo之lerna

lerna 学习

lerna all in one的code manage。将系统中的所有代码都放在一个项目中。
lerna是一种管理工具,针对使用git和npm的多软件包代码仓库的工作流进行优化

  1. 首先lerna是对多软件包进行管理
  2. 可以对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

更新公共依赖

  1. 安装lerna-update-wizard
  2. 执行

npm install --save-dev leran-update-wizard
./node_modules/.bin/lernaupdate

learn启动

启动项目一定要通过执行顶部的package.json中的script来执行子系统

posted @ 2021-08-02 15:49  东方胡  阅读(286)  评论(0)    收藏  举报