lerna.js:monorepos项目管理模式简单实践

举报
彭世瑜 发表于 2022/09/02 00:52:42 2022/09/02
【摘要】 解释: monorepos: 把相互依赖的项目组织成多包的形式放在同一个代码仓库里面lerna.js:管理项目的一个工具 文档: https://lerna.js.org/ 安装lerna $ ...

解释:

  • monorepos: 把相互依赖的项目组织成多包的形式放在同一个代码仓库里面
  • lerna.js:管理项目的一个工具

文档:

安装lerna

$ pnpm i lerna -g

修改配置 lerna.json,设置包管理工具为:pnpm

{
  "$schema": "node_modules/lerna/schemas/lerna-schema.json",
  "useNx": true,
  "useWorkspaces": true,
  "version": "0.0.0",
  "npmClient": "pnpm"
}

lerna init

# 初始化
$ lerna init

lerna create

# 创建三个新包
$ lerna create  -y animal
$ lerna create -y cat
$ lerna create  -y dog

文件目录

$ tree -I node_modules
.
├── lerna-debug.log
├── lerna.json
├── package-lock.json
├── package.json
├── packages
│   ├── animal
│   │   ├── README.md
│   │   ├── __tests__
│   │   │   └── animal.test.js
│   │   ├── lib
│   │   │   └── animal.js
│   │   └── package.json
│   ├── cat
│   │   ├── README.md
│   │   ├── __tests__
│   │   │   └── cat.test.js
│   │   ├── lib
│   │   │   └── cat.js
│   │   └── package.json
│   └── dog
│       ├── README.md
│       ├── __tests__
│       │   └── dog.test.js
│       ├── lib
│       │   └── dog.js
│       └── package.json
└── pnpm-lock.yaml

lerna list

列出所有的本地包

$ lerna list      
info cli using local version of lerna
lerna notice cli v5.4.3
animal
cat
dog
lerna success found 3 packages

lerna add

添加本地包或者远程包作为包的依赖

# 添加的 animal 作为 dog、cat 的依赖
lerna add animal

# 向 dog 中添加 cat 作为依赖
lerna add cat --scope=dog

lerna link

建立存在依赖关系的包之间的软连接

$ lerna link

建立软链之后,就可以相互引用了

lerna bootstrap

建立相互依赖的包之间的软连接并安装其他的依赖

$ lerna bootstrap

lerna run

在包目录下执行对应的脚本

# 在所有的包目录下执行测试
$ lerna run test

# 在dog 包目录下执行测试
$ lerna run test --scope=dog

lerna clean

移除所有 package 下的 node_modules,除了根目录下的 node_modules

$ lerna clean

参考
Lerna 小白入门

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/126638679

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。