npm 更新包括预发布

use*_*397 5 node.js npm

有一个包,其最新版本为2.1.3,预发行版本为3.0.0-rc.7。当我运行时npm install package -g,2.1.3 已安装。当我运行时npm update -g,它会更新到预发行版(我之前安装过,但后来删除了)。npm 是否保留最新预发布的记录?

$ package -v
2.1.3
$ sudo npm update -g package
$ package -v
3.0.0-rc.7
$ sudo npm remove package -g
$ sudo npm install package -g
$ package -v
2.1.3
Run Code Online (Sandbox Code Playgroud)

包注册表给出"latest":"2.1.3"和"pre":"3.0.0-rc.7"。我正在使用 npm 1.4.13 和节点 0.10.28。

Bur*_*ris 0

是的,npm 存储库可以保留多个不同的 dist 标签,并latest作为发布和安装时的默认标签。请参阅npm dist-tag文档。

预发布标识符的 semver 概念和非默认 dist 标签的 npm 概念是不同的,但如果包作者选择npm 发布任何预发布版本,那么将它们一起使用可能是最佳实践。例如,当发布候选版本时,用 来标记它可能是合适的next。有关更复杂的示例,请参阅此命令的输出:

C:> npm dist-tag ls npm
3.x-latest: 3.9.6
3.x-next: 3.10.1
latest-1: 1.4.29
latest-2: 2.15.6
latest: 3.9.6
lts: 2.15.6
next-2: 2.15.8
next: 3.10.1
v3.x-latest: 3.9.6
v3.x-next: 3.10.1
Run Code Online (Sandbox Code Playgroud)