发布依赖Workspace的PNPM Monorepo包,内部依赖能否正常工作?
PNPM Monorepo 发布后内部依赖的运作问题
直接带着workspace:*的依赖配置发布包的话,依赖肯定无法正常运作——npm仓库根本识别不了workspace:这个协议,其他用户安装你的包时会直接报错找不到对应依赖。
不过不用慌,PNPM本身就考虑到了这个场景:
- 当你执行
pnpm publish命令时,PNPM会自动把package.json里的workspace:*替换成对应依赖包的实际版本号。比如你的foo包版本是1.2.0,发布时就会自动改成"foo": "1.2.0"。 - 这里要注意两个点:
- 如果被依赖的包还没发布到npm仓库,单独发布当前包会导致后续安装失败,因为找不到对应版本的依赖包。
- 建议把有依赖关系的包放在同一批次发布,或者先发布被依赖的包,再发布依赖它的包。
如果需要更灵活的版本管理(比如多包版本独立更新、自动生成变更日志),可以用changesets这类工具,它能帮你自动处理Monorepo内的版本升级和依赖版本替换,流程更规范。
内容的提问来源于stack exchange,提问作者Artrix
相关产品推荐
相关产品推荐

