【发布时间】:2012-10-29 11:21:22
【问题描述】:
如果我为我维护的一个 npm 包修改了我的自述文件,我是否需要在 package.json 中修改版本并进行另一个 npm 发布?还是有其他方法可以在没有版本冲突的情况下更新自述文件。
【问题讨论】:
如果我为我维护的一个 npm 包修改了我的自述文件,我是否需要在 package.json 中修改版本并进行另一个 npm 发布?还是有其他方法可以在没有版本冲突的情况下更新自述文件。
【问题讨论】:
根据您对“需要”的定义,这可能是两个截然不同的问题:
[是否可以发布自述文件更改而不影响版本号?]
[技术上是否可以在不增加版本的情况下发布更改]
接受的答案(通过 npm publish --force 更新,即不增加版本号的任何部分)是 Q2 的一个很好的答案。但我想谈谈 Q1。
不鼓励使用npm publish --force。相反,我们鼓励作者使用semantic versioning aka semver,它规定:
... X.Y.Z (Major.Minor.Patch) 的版本格式。错误修复不 影响 API 增加补丁版本,向后兼容 API 添加/更改会增加次要版本,并向后 不兼容的 API 更改会增加主要版本。
所以我的答案是: 虽然从技术上讲有一种方法可以在不增加版本的情况下发布更改,但您不应该这样做。对于不影响包 API 的小修改,您应该提升“补丁”版本,例如从 1.2.0 到 1.2.1。
【讨论】:
如果注册表中已经存在版本号,npm publish --force 将覆盖。
【讨论】:
对于那些来到这里并认为他们做得对的人。是的,你做对了;在 5-10 分钟内检查您的 npm 页面。
【讨论】:
发布新的次要版本:
npm publish [@<scope>/]<name>[@<your new minor version>]
详细讨论请看这里:http://blog.npmjs.org/post/77758351673/no-more-npm-publish-f
执行此操作时要小心,在取消发布包后,它不会让您重新发布它,直到 24 小时过去。
您可以取消发布包,将该版本留空(但请在执行此操作之前了解其含义):npm unpublish [@<scope>/]<name>[@<version>]
注意:--force 参数已弃用。
【讨论】: