XXHolic / segment

some notes
MIT License
28 stars 4 forks source link

Lerna 实践记录 #92

Open XXHolic opened 4 years ago

XXHolic commented 4 years ago

引子

再次用到 Lerna ,有些东西忘记了,回头看之前翻译 Lerna ,发现官方文档更新了。又花了点时间去补充更新,这次把一些经验记下来。

lerna publish

以下的操作基本的前提状态:

执行前状态:

执行后状态:

图示 ![80-publish-default][url-local-1]

尝试同时修改两个库,跟上述过程一样。

只发布单个包

使用上面的发布方式,如果多个人维护,可能会把别人未验证的修改发布了。

只发布单个包的需求在 Issues 里面早就有人提了,见 issues1issues2。官方的回答是不支持的,也不考虑支持,并且提到:

如果所有的包都是相互独立的,不想同时发布它们,那么就没有必要使用 lerna 。

所以如果想独立发包,那么就到单个包目录下,使用 npm publish 进行发布。那么就会出现一个疑问:单独发包 A 之后没有再变动,修改包 B 后再用 lerna publish 发包,A 会额外增加一个版本号吗?

尝试之后,发现会提示让你选个版本号:

80-publish-process1

图中 1.1.8 是单独使用 npm publish 发布的版本,使用 lerna publish 时还是认定没有发布过。但可以迂回的避免无意义的版本号增加,那就是图中所示选择 “Custom Version” ,然后输入相同的版本号,这样会提示包发布失败了,但实际上另外一个修改的包正常的发布了。

80-publish-process2 80-publish-result

不 push 到远程

有些时候不想 push 到远程,执行命令 npm publish --no-push

参考资料

:wastebasket: ![80-poster][url-local-poster]