ChatGPT解决这个技术问题 Extra ChatGPT

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

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

npm rebuild 也可能有助于解决本机依赖项的一些问题
如果它对其他人有帮助:如果您只是想重新安装一个软件包,npm update <packageName> 效果很好

V
Vadim Baryshev

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


同意;假设您已经为您的应用程序创建了一个 package.json 文件。
请注意,在删除 node_modules 目录后运行 npm install 可能会导致在 package.json 中定义的不同版本的依赖项被拉下。如果您的应用程序需要非常特定版本的依赖项,请小心查看 npm shrinkwrap 或签入 node_modules 目录以进行源代码控制。
@smithclay我已经在我的应用程序的package.json中定义了包的显式版本,所以应该没问题,对吧?
@vadim 我正在对 npm install 的行为进行一些测试,它总是重新安装依赖项并将软件包升级到 package.json 允许的最新版本。因此,除非您认为它已损坏,否则不需要删除 node_modules 文件夹。你认为它应该被删除有什么理由吗?但是,如果意图是删除任何无关的包,那么您可以改为执行 npm prune
@himanshu 你是对的 npm install 将所有模块升级到 package.json 状态。但问题是如何重新安装所有软件包。因此它们可能已损坏或在升级 node.js 版本后可能需要重建二进制部分。
S
Sam Pierce Lolla

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

阅读 Intro to NPM 以了解您可以使用 npm 做什么。


但是,如果没有更新的软件包,那么这将无济于事,对吧?即使软件包已经是最新版本,我也会尝试强制重新安装。
如果没有丢失的包,那么它将检查是否可以使用 package.json 中列出的最新版本的包(包括包的依赖项)。因此,本质上它会尽可能升级软件包。但它不会重新安装。如果您想使用命令执行此操作,您可以执行 npm uninstall <package_name> 卸载特定包或执行 npm uninstall 卸载所有包。
我尝试只执行 npm uninstall 而不指定包,但会引发错误。
您提供的链接已失效,能否提供一个新链接? (我找到了 this,但我不确定是否可以更改为它)
不,这不是正确的方法,也不是问题的答案。问题是如何重新安装而不是如何更新到最新版本。我需要降级。
0
0x1ad2

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

rm -rf node_modules && npm install

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


D
Dominykas Mostauskis

你可以用一个简单的命令来做到这一点:

npm ci

以下是 npm ci documentation: 的摘录

简而言之,使用 npm install 和 npm ci 的主要区别是: 项目必须有一个现有的 package-lock.json 或 npm-shrinkwrap.json。如果包锁中的依赖项与 package.json 中的依赖项不匹配,npm ci 将退出并报错,而不是更新包锁。 npm ci 一次只能安装整个项目:无法使用此命令添加单个依赖项。如果 node_modules 已经存在,它将在 npm ci 开始安装之前自动删除。它永远不会写入 package.json 或任何包锁:安装基本上是冻结的。


O
Olivia Stork

npm 更新了 install 的 CLI 命令并添加了 --force 标志。

npm install --force

即使磁盘上存在本地副本,--force(或 -f)参数也会强制 npm 获取远程资源。

请参阅npm install


我的经验是,这行不通。文档说它确实如此,但它根本没有。
J
Jaa H

从 npm cli v6.5.0 开始,您可以使用 backronym:

npm clean-install

资料来源:

https://github.com/npm/cli/releases/tag/v6.5.0 https://github.com/npm/cli/commit/fc1a8d185fc678cdf3784d9df9eef9094e0b2dec


d
deksden

您可以使用 npm 中的 reinstall module

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

reinstall

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

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


@g00glen00b 我已经编辑,现在它确实包含有用的信息,没有超链接
S
Surender Kumar

删除node_module并通过命令重新安装

rm -rf node_modules && npm i

m
michal.jakubeczy

对于 Windows,您可以使用

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

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


C
Chukwu3meka

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

即使 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