2017-07-03 17 views
1

在我的node.js项目中,我用来更改package.json文件中的依赖关系的版本号,然后运行npm installnpm update来安装配置的版本。如何获得npm v5安装依赖关系我只是在package.json中手动更新的?

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

现在我越来越诉诸一个可怕的解决办法,迫使NPM实际更新depencencies,简单地删除并重新安装所有的依赖关系:

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

这有点像一个错误,而不是预期的行为感到的。任何想法如何让npm v5正常工作?

UPDATE:

看起来像故宫V5确实有一个bug:npm update不更新devDependencies,看到https://github.com/npm/npm/issues/16901

+0

也许你想看看[npm-check-updates](https://www.npmjs.com/package/npm-check-updates)。 – pzaenger

+0

@pzaenger是的,我一直使用npm-check-updates,就像一个魅力。只有npm v5根据package.json中的更改忘记更新开发依赖关系... –

回答

0

这是一个正确的[email protected]行为。您应该使用命令行来处理包。

案例1

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

案例2

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

案例3 你需要包package-onepackage-two的特定版本。使用npm install [email protected] [email protected]

在任何情况下,该命令将更新package.json,package-lock.json文件和node_module文件夹。

+1

感谢@galkin为您提供明确的解释,案例1确实是我想要和期待的。更多挖掘之后,它看起来像'npm update'按照'dependencies'的预期工作,但npm @ 5中有一个(已知的)用于更新'devDependencies'的bug,请参阅https://github.com/npm/npm/issues/16901。 –

0

安装模块的特定版本,你可以在故宫指定它安装命令,并且--save也将它添加到你的package.json中。 这种方式为我工作节点8.0.0和5.0.0 NPM(升级和降级版本)

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

npm @ 5'--save'标志默认为true。 – galkin

相关问题