【发布时间】:2012-10-03 16:58:47
【问题描述】:
有没有一种简单的方法来重新安装我的应用所依赖的所有包(即它们在我的应用节点模块文件夹中)?
【问题讨论】:
-
npm rebuild也可能有助于解决本机依赖项的一些问题 -
如果它对其他人有帮助:如果您只是想重新安装一个软件包,
npm update <packageName>效果很好
有没有一种简单的方法来重新安装我的应用所依赖的所有包(即它们在我的应用节点模块文件夹中)?
【问题讨论】:
npm rebuild 也可能有助于解决本机依赖项的一些问题
npm update <packageName> 效果很好
我能看到的最简单的方法是删除node_modules 文件夹并执行npm install。
【讨论】:
package.json 文件。
node_modules 目录后运行npm install 可能会导致package.json 中定义的不同版本的依赖关系被拉下。如果您的应用需要非常特定版本的依赖项,请小心并查看 npm shrinkwrap 或检查您的 node_modules 目录以进行源代码控制。
npm install 的行为进行一些测试,它总是重新安装依赖项并将软件包升级到 package.json 允许的最新版本。因此,除非您认为它已损坏,否则不需要删除 node_modules 文件夹。你认为它应该被删除有什么理由吗?但是,如果目的是删除任何无关的包,那么您可以执行 npm prune 代替
npm install 将所有模块升级到 package.json 状态。但问题是如何重新安装所有软件包。因此它们可能已损坏或在升级 node.js 版本后可能需要重建二进制部分。
正确的方法是执行npm update。这是一个非常强大的命令,它会更新丢失的软件包并检查是否可以使用已安装的较新版本的软件包。
阅读 Intro to NPM 以了解您可以使用 npm 做什么。
【讨论】:
npm uninstall <package_name> 卸载特定包或执行npm uninstall 卸载所有包。
npm uninstall 而不指定包,但会引发错误。
大多数时候我使用以下命令来实现所有节点模块的完全重新安装(确保您在项目文件夹中)。
rm -rf node_modules && npm install
您也可以在删除 node_modules 文件夹后运行 npm cache clean 以确保没有任何缓存的依赖项。
【讨论】:
npm 更新了 install 的 CLI 命令并添加了 --force 标志。
npm install --force
--force(或-f)参数将强制npm 获取远程资源,即使磁盘上存在本地副本。
【讨论】:
您可以使用 npm 中的 reinstall module。
安装后,可以使用如下命令:
reinstall
手动删除node_modules文件夹和创建npm install的唯一区别是这个命令会自动清除npm的缓存。因此,您可以在一个命令中完成三个步骤。
upd: npx reinstall 是一种无需全局安装包即可运行此命令的方法(仅适用于 npm5+)
【讨论】:
对于 Windows,您可以使用
(if exist node_modules rmdir node_modules /q /s) && npm install
删除node_modules 目录并执行npm install 然后。安装前删除可确保重新安装所有软件包。
【讨论】:
按照此步骤重新安装节点模块并更新它们
即使 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
【讨论】:
你可以用一个简单的命令来做到这一点:
npm ci
简而言之,使用
npm install和npm ci的主要区别是:
- 项目必须有一个现有的
package-lock.json或npm-shrinkwrap.json。- 如果包锁中的依赖项与
package.json中的依赖项不匹配,npm ci将退出并报错,而不是更新包锁。npm ci一次只能安装整个项目:无法使用此命令添加单个依赖项。- 如果
node_modules已经存在,它将在npm ci开始安装之前自动删除。- 它永远不会写信给
package.json或任何包锁:安装基本上是冻结的。
【讨论】:
删除node_module并通过命令重新安装
rm -rf node_modules && npm i
【讨论】:
从 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
【讨论】:
npm i && npm cache verify。