在 Lerna 中使用 pnpm
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)。
- 遵守工作空间协议进行包依赖。
- 在 lerna version期间,依赖项将正常更新,但如果存在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从现有锁文件生成pnpm-lock.yaml文件。支持的锁文件源请参见 https://pnpm.io/cli/import。
- 
运行 pnpm install。