如何让 npm v5 安装我刚刚在 package.json 中手动更新的依赖项?

How to get npm v5 install a dependency I just updated manually in package.json?

在我的node.js项目中,我曾经在package.json文件中更改依赖项的版本号,然后运行npm installnpm update安装配置的版本。

但是,由于我使用的是 npm v5,这似乎不再有效 - 无论是安装还是更新实际上都不会安装更新版本。我是 运行ning node.js v8.1.3 和 npm v5.0.4。

现在我越来越多地采用糟糕的解决方法来强制 npm 实际更新依赖项,只需删除并重新安装所有依赖项:

rm -rf node_modules package-lock.json && npm install

这感觉像是一个错误,而不是预期的行为。关于如何让 npm v5 工作的任何想法 "normally"?

更新:

看起来 npm v5 确实有一个错误:npm update 没有更新 devDependencies,参见 https://github.com/npm/npm/issues/16901

要安装特定版本的模块,您可以在 npm install 命令中指定它,--save 也会将它添加到您的 package.json。 这种方式适用于节点 8.0.0 和 npm 5.0.0,(升级和降级版本)

npm install --save <module>@<version>

这是正确的 NPM@5.x 行为。您应该使用命令行来处理包。

案例一

您需要所有软件包的最新版本。在文件夹内使用 npm update

案例二

您需要最新版本的软件包 package-onepackage-two。使用 npm update package-one package-two.

案例三 您需要软件包 package-onepackage-two 的特定版本。使用 npm install package-one@a.b.c package-two@x.y.z.

无论如何,该命令都会更新 package.jsonpackage-lock.json 文件和 node_module 文件夹。