2012-04-09 470 views
89

npm update似乎只是更新dependencies中的包,但devDependencies怎么样。如何更新NPM中的devDependencies?

现在你可以通过运行npm install .安装devDependencies,但这并不为npm update .

任何工作思路?

+0

我刚碰到同样的事情。我对'npm install'和'npm update'之间的这种不对称感到惊讶。我通过删除我的'node_modules'目录,然后再次运行'npm install'来解决这个问题,但是确实看起来应该有更好的方法。 – 2012-04-14 02:01:09

+0

嗯,我也是这么做的。 – Matt 2012-04-14 04:47:21

+7

我为此行为打开了一个[bug报告](https://github.com/isaacs/npm/issues/2369)。我们将看到会发生什么。 – 2012-04-14 12:21:00

回答

99

要在除本地模块更新的package.json,运行

npm update --save-dev 

或者,相同的命令,以节省时间

npm update -D 

您可以查看完整的细节的更新或任何指令通过

npm help <cmd> 
+11

'npm update -D'不适用于我,它没有更新任何内容。 – AmazingDreams 2016-01-21 11:25:49

+11

当问题不是如何保存“package.json”的更新时,为什么这被标记为正确的答案,而是如何让“npm update”更新devDependencies? – 2016-04-11 21:18:51

+0

npm 5正常工作.. – onalbi 2017-06-14 15:29:59

3

一种(慢)的方式来强制更新,是删除node_modules目录,然后再次执行npm install

这是npm update命令,已经盯在npm开发分支的一个已知的错误,在这里看到: https://github.com/isaacs/npm/pull/3863

应该很快就NPM的最新稳定版本的土地。

+0

在npm> v5的情况下,您还需要删除'package-lock.json'来完成这个工作,否则它只会安装该锁定文件中列出的版本。 – karfau 2017-10-10 08:23:52

2

添加新的依赖在config.json文件,

然后运行命令

npm update 

有时需要运行与sudo命令管理员权限的再使用。

sudo npm update 
7

此问题不再使用当前版本的NPM(1.3.11)消除。

更新工作正常:npm update

2

我遇到同样的问题,因为OP了,并没有发现任何解决方案,所以我决定写一咕噜插件,将自动更新我的devDependencies ..

它在Github上,我很想获得一些输入和合作,以使它成为NPM未提供的最佳工具。

基本上它会用一个简单的Grunt Task自动更新过时的开发依赖项。

https://github.com/pgilad/grunt-dev-update

36

安装NPM-签更新(https://www.npmjs.org/package/npm-check-updates),然后跳转到项目文件夹,然后运行:

npm-check-updates 

,并更新和更改保存到你的包。json文件:

npm-check-updates -u 
+0

退出有用的工具,感谢分享。 – 2015-06-28 11:11:02

3

如果您使用过时的npm版本,则可能是问题所在。所以,在任何其他的命令执行:

sudo npm install npm -g 

或者(如果上述方法无效):

sudo npm update npm -g 

然后重新开张控制台(为了使更改生效)。现在 你可以检查你的新npm --version,如果它是最新的执行:

npm update 

或者(如果你喜欢):

npm update --save-dev