如何在NPM中更新devDependencies?


155

npm update似乎只是更新其中的软件包dependencies,但是devDependencies

现在,您可以devDependencies通过运行进行安装npm install .,但这不适用于npm update .

有任何想法吗?


1
我只是遇到了同样的事情。我对npm install和之间的这种不对称感到惊讶npm update。我通过删除node_modules目录然后npm install再次运行来解决该问题,但是看来应该有更好的方法。
乔·怀特

7
我为此行为打开了一个错误报告。我们将看看会发生什么。
Joe White

这可能是因为NPM开发人员认为人们会npm link在开发环境中使用。
朱利安·奈特

Answers:


156

除本地模块外,要更新package.json,请运行

npm update --save-dev

或者,使用同一命令来节省时间

npm update -D

您可以通过以下方式查看更新的完整详细信息或与此相关的任何命令

npm help <cmd>

20
npm update -D不适用于我,它没有更新任何内容。
AmazingDreams,2016年

27
当问题不是如何保存更新,package.json而是如何使npm updatedevDependencies 更新时,为什么将此标记为正确答案?
亚历杭德罗·加西亚·伊格莱西亚斯

@onalbi:不会。这是跟踪问题线程
Dan Dascalescu 18/09/26

1
npm update --save-dev对我来说很好。使用节点v12.11.0和npmv6.11.3
maximedupre



4

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

sudo npm install npm -g

或(如果上述方法不起作用):

sudo npm update npm -g

然后重新启动控制台(以使更改生效)。现在,您可以检查新的npm --version,如果是最新的,请执行:

npm update

或(如果您愿意):

npm update --save-dev

不幸的是,这在npm 5中不起作用。这是跟踪问题线程
Dan Dascalescu 18/09/26

2

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

这是该npm update命令的一个已知错误,已在的开发分支中进行了修复npm,请参见此处:https : //github.com/isaacs/npm/pull/3863

它应该很快就会安装在npm的最新稳定版本上。


1
如果npm> v5,则还需要将其删除package-lock.json以使其起作用,否则它将仅安装该锁定文件中列出的版本。
卡法(Karfau)

另外,这不会package.json为您更新。这是跟踪问题线程
Dan Dascalescu 18/09/26

2

我遇到了与OP相同的问题,但没有找到解决方案,因此我决定编写一个Grunt插件,该插件将自动更新我的devDependencies。

它在Github上,我很乐意得到一些意见和合作,以使其成为NPM尚未提供的最佳工具。

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

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


2

对我有用的是安装这样的单个开发人员依赖项

npm install react-test-renderer@15.6.1 --save --only=dev

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.