
pnpm和monorepo项目中精确指定本地包版本的方法
在使用pnpm管理的monorepo项目中,添加和指定本地包的版本有时会出乎意料。例如,你希望在项目A中使用组件库B的1.0.0版本,但使用pnpm add B@1.0.0 --workspace后,package.json中却显示版本为"workspace:^",而非预期的"workspace:1.0.0"。这是因为pnpm的默认行为是使用最新的大版本号。
为了精确控制本地包版本,避免版本冲突和依赖问题,需要使用--save-exact标志。 正确的命令如下:
pnpm add B@1.0.0 --workspace --save-exact
此命令强制pnpm将package.json中的版本精确设置为"workspace:1.0.0",确保项目依赖的稳定性和可重复性。 通过这个简单的修改,你可以有效地管理monorepo项目中本地包的版本,避免因版本不一致带来的问题。










