使用
我们从搭建一个monorepo项目来一步步了解monorepo
- 全局安装
Lerna
npm install lerna -g
- 初始化项目
git init
lerna init
lerna会帮我们生成一个文件夹和两个json文件
📃 package.json📃 lerna.json📂 package: 用于存放各个项目
常用操作
添加依赖(全部项目)
该命令将会在每个项目下生成对应的package-lock.json和node_modules
lerna add package
如果不想在每个项目下都生成对应包的文件, 则可以将依赖提升至全局
lerna add package --hoist
这样会在项目根目录下生成node_modules和对应的package-lock.json文件
升级特定项目下依赖
如果我们想要升级特定项目下特定依赖的版本, 可以使用--scope=projectName
lerna add package@1.0.1 --scope=A
将内部项目作为依赖
如果我们想要添加packages下其他项目作为依赖, 可以使用下面命令
lerna add A --scope=B
这将会在B项目下的node_modules下创建A项目的软连接(符号链接), 使得A的文件对B项目完全透明
已有项目初始化
当我们创建好一个monorepo发布后, 其他成员或者在其他机器上同步代码的时候需要进行项目初始化
lerna bootstrap --hoist
查看已有项目列表
lerna ls
运行命令
lerna run xxx --scope=xxx
更新版本与发布
使用 lerna version对monorepo中项目版本进行更新,该操作会更新package.json中的version并提交一个commit