如何使用npm重新安装应用程序的依赖项?


383

有没有简单的方法来重新安装我的应用程序依赖的所有软件包(即它们在我的应用程序的node_modules文件夹中)?


4
npm rebuild可能还有助于解决本地依赖项的一些问题
Francisco Presencia

1
万一它对其他人有帮助:如果您只是想重新安装一个软件包,npm update <packageName>
那就

Answers:


616

我看到的最简单的方法是删除node_modules文件夹并执行npm install


27
同意;假设您已经package.json为应用创建了文件。
JohnnyHK

8
请注意,npm install删除node_modules目录后运行会导致package.json下拉列表中定义的依赖关系的不同版本。如果您的应用需要非常特定的依赖版本,请小心并npm shrinkwrap检查或检查node_modules目录以进行源代码控制。
Smithclay 2012年

9
@smithclay我已经在应用程序的package.json中定义了软件包的显式版本,所以应该没问题吧?
trusktr 2012年

@vadim我正在对的行为进行测试npm install,它总是重新安装依赖项,并根据package.json的许可将软件包升级到最新版本。因此node_modules,除非您认为文件夹已损坏,否则不需要删除文件夹。您认为有理由将其删除吗?但是,如果要删除所有无关的软件包,则可以npm prune改为执行
himanshu 2012年

1
@himanshu你是对的,npm install将所有模块升级到package.json状态。但是问题是如何重新安装所有软件包。因此,它们可能已损坏,或者在升级node.js版本后可能需要重建二进制部分。
瓦迪姆·巴里舍夫

96

正确的方法是执行npm update。这是一个非常强大的命令,它会更新缺少的软件包,并检查是否可以使用已经安装的较新版本的软件包。

阅读NPM简介以了解您可以使用npm做什么。


57
但是,如果没有更新的程序包,那么它什么也不会做,对吗?我试图强制重新安装,即使该软件包已经是最新版本。
trusktr 2012年

2
如果没有缺少的软件包,它将检查是否可以使用package.json中列出的最新版本的软件包(包括软件包的依赖项)。因此,实质上,如果可能,它将升级软件包。但是不会重新安装。如果要使用命令来执行此操作,则可以执行npm uninstall <package_name>以卸载特定程序包或执行npm uninstall以卸载所有程序包。
himanshu

1
我尝试npm uninstall不指定软件包就这样做,但是会引发错误。
trusktr 2012年

执行此操作的文件夹目录中是否有package.json?如果要卸载全局软件包,则需要添加-g
himanshu 2012年

1
您提供的链接已失效,您能否提供一个新的链接?(我发现了这个,但我不确定更改是否可以接受)
Motti

62

大多数时候,我使用以下命令来完全重新安装所有节点模块(确保您位于项目文件夹中)。

rm -rf node_modules && npm install

您也可以npm cache clean在删除node_modules文件夹后运行,以确保没有任何缓存的依赖项。



12

您可以使用npm中的重新安装模块

安装后,可以使用以下命令:

reinstall

手动删除node_modules文件夹并进行制作的唯一区别npm install是此命令会自动清除npm的缓存。因此,您可以在一个命令中获得三个步骤。

upd: npx reinstall一种无需全局安装软件包即可运行此命令的方法(仅适用于npm5 +)


1
@ g00glen00b我已经编辑过,因此它现在确实包含了没有超链接的有用信息
Rob

@ g00glen00b很好;它不会使它成为删除的候选对象。请查看这篇文章 -特别是它提供了一个简短的答案链接,前提是当删除超链接时有一些有用的信息(例如,库的名称)
Rob


1

对于Windows,您可以使用

(if exist node_modules rmdir node_modules /q /s) && npm install

删除node_modules目录然后执行npm install。安装前删除确保所有软件包都已重新安装。


0

请按照此步骤重新安装并更新节点模块

即使node_modules文件夹不存在也可以工作。现在同步执行以下命令。您也可以使用“ npm update”,但我认为这是首选方式

npm outdated // not necessary to run this command, but this will show outdated dependencies

npm install -g npm-check-updates // to install the "ncu" package

ncu -u --packageFile=package.json // to update dependencies version in package.json...don't run this command if you don't need to update the version

npm install: will install dependencies in your package.json file.

如果您对package.json文件中的依赖项版本满意,则无需执行这些步骤即可

 npm install
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.