34

如果我为我维护的一个 npm 包修改了我的自述文件,我是否需要在 package.json 中修改版本并再做一次 npm 发布?还是有另一种方法来更新自述文件而不会出现版本问题。

4

4 回答 4

41

根据您对“需要”的定义,这可能是两个非常不同的问题:

  1. [不碰版本号就可以发布自述文件更改吗?]

  2. [技术上是否可以在不增加版本的情况下发布更改]

接受的答案(通过 更新npm publish --force,即不增加版本号的任何部分)是 Q2 的一个很好的答案。但我想谈谈 Q1。

npm publish --force不鼓励使用。相反,鼓励作者使用语义版本控制又名 semver,它规定:

... XYZ 的版本格式(Major.Minor.Patch)。不影响 API 的错误修复会增加补丁版本,向后兼容的 API 添加/更改会增加次要版本,而向后不兼容的 API 更改会增加主要版本。

所以我的回答是:虽然从技术上讲,有一种方法可以在没有版本冲突的情况下发布更改,但您不应该这样做。对于不影响包 API 的小修改,您应该升级“补丁”版本,例如从 1.2.0 到 1.2.1。

于 2012-11-13T21:29:52.157 回答
2

npm publish --force如果注册表中已经存在版本号,将覆盖。

https://npmjs.org/doc/publish.html

于 2012-11-09T16:27:34.870 回答
2

你能做的最好的事情是:

发布新的次要版本:

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参数已弃用。

于 2015-07-10T11:43:17.580 回答
2

对于那些登陆这里并认为他们做得对的人。是的,你做对了;npm在 5-10 分钟内检查您的页面。

于 2016-01-18T01:39:54.663 回答