如何手动触发pnpm的workspace版本替换(无需执行publish)
解决方法
当然可以手动触发workspace依赖版本的替换操作,给你两种实用方案:
方案一:用pnpm专用命令直接替换
pnpm提供了专门的命令来替换工作区依赖版本,不需要执行发布流程:
- 确保项目根目录存在
pnpm-workspace.yaml(pnpm工作区的标识文件) - 在项目根目录执行以下命令:
pnpm dlx @pnpm/plugin-commands-publish replace-workspace-deps app
执行后,app/package.json里的"lib": "workspaces:*"会自动替换成lib包的实际版本(比如"lib": "^1.0.0")。
方案二:通过打包提取处理后的package.json
如果不想额外调用插件,也可以用pnpm自带的打包功能间接实现:
- 进入app包目录:
cd app
- 执行打包命令:
pnpm pack
这会生成一个类似app-1.0.0.tgz的压缩包,里面的package.json已经完成了workspace依赖的版本替换。
3. 解压这个压缩包,把里面的package.json复制出来替换原app目录下的同名文件即可。
注意:如果你的lib包还没发布到npm仓库,复制源码运行时记得把lib包也一起复制,或者在新环境里将lib作为本地依赖安装,否则替换版本后可能无法拉取到对应的lib包。
内容的提问来源于stack exchange,提问作者Shaun Xu
相关产品推荐
相关产品推荐

