在 Lerna 中使用 pnpm
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
Lerna 可以在 pnpm 工作区中使用,从而充分发挥 pnpm 和 Lerna 的双重优势。
当在 pnpm 工作区中使用时,Lerna 将:
-
通过
pnpm-workspace.yaml解析包位置 (https://pnpm.io/workspaces) -
忽略
package.json中的"workspaces"配置 -
禁用
bootstrap、link和add命令。你应直接使用pnpm命令管理依赖项 (https://pnpm.io/cli/install) -
遵循包依赖的 workspace 协议
- 执行
lerna version时会正常更新依赖,但保留已有的workspace:前缀 - 若使用 workspace 别名,
lerna version不会更新依赖版本号,因为别名不包含具体版本
- 执行
开始使用
配置 pnpm 与 Lerna 协作:
-
若未安装,请先安装
pnpm:https://pnpm.io/installation -
删除根目录下的
node_modules/文件夹(若存在)。若未启用工作区,请运行lerna clean清除所有包内的node_modules/ -
在
lerna.json中设置"npmClient": "pnpm" -
在项目根目录创建
pnpm-workspace.yaml文件 若已使用 npm 或 yarn 工作区,请将package.json中的 "workspaces" 属性移至pnpm-workspace.yaml。若未使用工作区,则将lerna.json中的 "packages" 属性移至pnpm-workspace.yaml。例如:package.json{
"workspaces": ["packages/*"]
}及
lerna.json{
"packages": ["packages/*"]
}应改为:
pnpm-workspace.yamlpackages:
- "packages/*" -
(可选) 运行
pnpm import从现有 lockfile 生成pnpm-lock.yaml。支持的文件格式详见:https://pnpm.io/cli/import -
运行
pnpm install