npm更新到特定版本(和shrinkwrap)

Yve*_*L L 15 node.js npm

我正在使用NPM和shrinkwrap(最新的最新版本)来维护我的包.

目前,我的一个包当前版本是1.1.0.该软件包的最新版本是2.2.0.

我想将此特定包更新/升级到版本2.0.0(而不是最新的2.2.0).

我认为程序将是:

  1. npm install 为了确保我与npm-shrinkwrap同步
  2. npm update myPackage@2.0.0
  3. npm shrinkwrap
  4. git add . && git commit -m "Updating package myPackage to version 2.0.0"

这似乎不是正确的道路.它没有更新package.json,它总是跳转到最新版本.我无法控制此命令来选择我想要的特定版本.

我阅读了有关的文档npm update,但找不到将软件包更新到特定版本的正确方法.

这该怎么做 ?会npm install --save myPackage@2.0.0是正确的程序吗?那么拥有npm update命令的目的是什么?

解: npm install package@2.0.0 --save

Gre*_*ell 31

npm update据我所知,似乎没有与shrinkwrap文件交互.但您可以使用它npm install来设置包的版本.

这将更新package.jsonnpm-shrinkwrap.json:

npm install myPackage@2.0.0 --save

  • 在一些旧的 NPM 版本中,它不起作用。既然修好了,现在就可以用了。 (2认同)

小智 7

您可以package.json在依赖项上输入并自己编写版本。之后,npm install它会安装正确的版本。

  • 当然,但我想避免在`package.json` 中手动编写,只使用 NPM 命令 (2认同)
  • 您不应该手动更新 package.json 中的版本,它可能会破坏您的构建。请参阅此处https://github.com/supasate/connected-react-router/issues/330#issuecomment-511389429 (2认同)