Open XXHolic opened 4 years ago
再次用到 Lerna ,有些东西忘记了,回头看之前翻译 Lerna ,发现官方文档更新了。又花了点时间去补充更新,这次把一些经验记下来。
以下的操作基本的前提状态:
package.json
执行前状态:
执行后状态:
尝试同时修改两个库,跟上述过程一样。
使用上面的发布方式,如果多个人维护,可能会把别人未验证的修改发布了。
只发布单个包的需求在 Issues 里面早就有人提了,见 issues1、issues2。官方的回答是不支持的,也不考虑支持,并且提到:
如果所有的包都是相互独立的,不想同时发布它们,那么就没有必要使用 lerna 。
所以如果想独立发包,那么就到单个包目录下,使用 npm publish 进行发布。那么就会出现一个疑问:单独发包 A 之后没有再变动,修改包 B 后再用 lerna publish 发包,A 会额外增加一个版本号吗?
npm publish
lerna publish
尝试之后,发现会提示让你选个版本号:
图中 1.1.8 是单独使用 npm publish 发布的版本,使用 lerna publish 时还是认定没有发布过。但可以迂回的避免无意义的版本号增加,那就是图中所示选择 “Custom Version” ,然后输入相同的版本号,这样会提示包发布失败了,但实际上另外一个修改的包正常的发布了。
有些时候不想 push 到远程,执行命令 npm publish --no-push 。
npm publish --no-push
引子
再次用到 Lerna ,有些东西忘记了,回头看之前翻译 Lerna ,发现官方文档更新了。又花了点时间去补充更新,这次把一些经验记下来。
lerna publish
以下的操作基本的前提状态:
package.json
基本配置都已设置。package.json
中 scripts 字段。执行前状态:
执行后状态:
图示
![80-publish-default][url-local-1]尝试同时修改两个库,跟上述过程一样。
只发布单个包
使用上面的发布方式,如果多个人维护,可能会把别人未验证的修改发布了。
只发布单个包的需求在 Issues 里面早就有人提了,见 issues1、issues2。官方的回答是不支持的,也不考虑支持,并且提到:
所以如果想独立发包,那么就到单个包目录下,使用
npm publish
进行发布。那么就会出现一个疑问:单独发包 A 之后没有再变动,修改包 B 后再用lerna publish
发包,A 会额外增加一个版本号吗?尝试之后,发现会提示让你选个版本号:
图中 1.1.8 是单独使用
npm publish
发布的版本,使用lerna publish
时还是认定没有发布过。但可以迂回的避免无意义的版本号增加,那就是图中所示选择 “Custom Version” ,然后输入相同的版本号,这样会提示包发布失败了,但实际上另外一个修改的包正常的发布了。不 push 到远程
有些时候不想 push 到远程,执行命令
npm publish --no-push
。参考资料
:wastebasket:
![80-poster][url-local-poster]