npm install test-clis-devs全局安装
cnpm i -g lerna
初始化
要先在package.json添加
"workspaces": [
"packages/*"
]
lerna init
强力清除
npm cache clean --force
rm -rf node_modules package-lock.json
创建子包
cnpm init -w ./packages/包名
安装特定依赖(相当于lerna旧版本的lerna add)
cnpm install 依赖包名 依赖包名(若是本地 packages/依赖包名/) (安装多个) 全局安装
cnpm install 依赖包名 -w packages/包名/
卸载依赖(相当于lerna就版本的lerna bootstrap)
cnpm uninstall 依赖包名 依赖包名(若是本地 packages/依赖包名/) (卸载多个) 全局卸载
tips:本地依赖包卸载后需要手动去package.json和package-lock.json中删除依赖
帮助
lerna -h
开发和测试----------------------------------------------------------------
在每个包下同时执行,但是不包括主包
lerna exec -- 执行命令
在某个包执行命令
lerna exec --scope 包名(package.json中) -- 执行命令
在每个包下执行script命令
lerna run 执行脚本名称
某个包下执行命令
lerna run --scope 包名(package.json中) 执行命令
exec和run区别
执行方式:exec是直接执行命令,run是执行package.json中的script
灵活性:exec适合临时或通用操作,run更适合标准化流程
依赖管理:run依赖脚本,exec无需预定义,但需要手动处理路径和参数
使用场景:run适合标准化的构建、测试、部署等流程,exec用于底层操作,如清理,调试,run用于高层任务,如构建/测试
发布上线----------------------------------------------------------------
查看当前已上线的版本号
lerna version
查看有哪些变更,以及哪些package将会被发布
lerna changed
查看提交后的变更
lerna diff
发布
lerna publish(全部提交完毕后执行)
发布前需要在每个子包的packag.json中添加"publishConfig": {
"access": "public"
}
npm cache clean --force
tips:发布是Lerna 中用于将 Monorepo 中的包发布到 NPM registry 的核心命令,它自动化处理版本检测、Git 标签创建和包发布等流程。
git相关
git add . 提交所有变更
git commit -m '提交信息'
关联远程仓库
git remote -v 查看远程仓库
git remote add origin git@github.com:xxx/xxx.git 关联远程仓库
git pull origin main 拉取远程仓库
git push -u origin main 第一次推送到远程库
git push origin main 推送main分支
git push origin maingit push origin master --tags 推送tag
就差上传到github和发布