如何在Turborepo中用Changesets仅发布部分包并统一版本升级?
实现方法
可以通过Changesets的配置实现该需求,具体步骤如下:
标记无需发布的包(web包)
有两种方式可选:- 在web包的
package.json中添加"private": true,npm会禁止私有包发布,同时Changesets执行发布时会自动跳过这个包,但版本升级流程不受影响。 - 在项目根目录的
.changeset/config.json里配置ignore字段,将web包加入忽略发布列表:{ "ignore": ["web"] }
- 在web包的
执行标准Changesets流程
- 运行
pnpm changeset,选择需要升级版本的包(包含web和ui),填写版本变更说明。 - 运行
pnpm changeset version,该命令会自动更新所有目标包的版本号(web和ui都会升级),同时生成对应的CHANGELOG文件。 - 运行
pnpm changeset publish,此时Changesets只会发布未被标记为私有或未加入忽略列表的包(即ui包),web包仅完成版本升级,不会推送到npm仓库。
- 运行
内容的提问来源于stack exchange,提问作者Magnus
相关产品推荐
相关产品推荐

