lerna笔记

lerna

多个项目的代码放在在同一存储库中这种开发策略称之为 Monorepo
基于 git+npm的多package项目管理工具

lerna解决了什么问题

1、 重复操作

  1. 多package本地link
  2. 多package依赖安装
  3. 多package单元测试
  4. 多package代码提交
  5. 多package代码发布

2、版本一致性

  1. 发布时的版本一致性
  2. 发布后版本互相依赖的问题

yarn workspace

依赖树关系
yarn workspaces info
安装依赖
lerna bootstrap //但是我的项目不能用
相当于 yarn install 和 npm install

yarn安装/删除依赖模块

注意

workspace后面跟的不是文件夹名字是package.json的name名字

 注意 -- 是json的name名字不是文件夹名字
# packageA 安装 axios
yarn workspace packageA add axios

# packageA 移除 axios
yarn workspace packageA remove axios


# root package 安装 commitizen
yarn add -W -D commitizen

# root package 移除 commitizen
yarn remove -W commitizen


lerna安装命令

package-1 package-2是项目名字
lerna add babel , 该命令会在package-1和package-2下安装babel
lerna add react --scope=package-1 ,该命令会在package-1下安装react
lerna add package-2 --scope=package-1,该命令会在package-1下安装package-2

运行
# 运行packageA 的dev命令
yarn workspace packageA dev

# 这里是在每个工作区运行 run build 命令
yarn workspaces run build
  "useWorkspaces": true, // 使用yarn workspaces
    "private": true, // 私有的,不会被发布,是管理整个项目,与要发布到npm的解耦

实践

需求:各package独立打包:有公用打包配置的能力
 //包安装、同时安装各个子包需要的依赖
 yarn install
 yarn workspace cli add cli-shared-utils
  //将cli-shared-utils作为cli的依赖进行安装
 yarn workspaces add lodash //给所有的package安装依赖:
 yarn add -W -D typescript //给根目录 安装公用的依赖
 这个很少用,不是装在每个项目里面,而是根里面
 //清理环境
 lerna clean //清理所有的node_modules
 //按顺序构建(各个package之间存在相互依赖,
 //如packageB只有在packageA构建完之后才能进行构建
 //,否则就会出错,需要按拓扑排序的规则进行构建)
lerna run --stream --sort build

升级与发布

升级与发布
两种模式:
Independent mode:结合Git,检查文件变动,只发布有改动的packge。(
设置方式1:	创建项目的时候 可以通过 lerna init --independent 命令,
	启用独立模式管理软件包。
设置方式2:	修改 lerna.json 的 version 字段,
	修改为 independent, 用来开启独立模式)

Fixed/Locked mode(默认):把工程当作一个整体来对待。每次发布packges,
都是全量发布,无论是否修改
//更新版本
//找出从上一个版本发布以来有过变更的 package
//提示开发者确定要发布的版本号
//将所有更新过的的 package 中的package.json的version字段更新
//将依赖更新过的 package 的 包中的依赖版本号更新
//更新 lerna.json 中的 version 字段
//根据commit信息自动生成该版本的CHANGELOG (配置conventionalCommits)
//提交上述修改,并打一个 tag
//推送到 git 仓库

lerna version //更新版本 

//发布新包
lerna publish  //包含了lerna version

pnpm+leran理解文档

lerna文档

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值