Node.js 如何重新安装应用程序';使用npm的依赖关系?
有没有一种简单的方法可以重新安装我的应用程序所依赖的所有软件包(即它们在我的应用程序节点模块文件夹中)?我能看到的最简单的方法是删除Node.js 如何重新安装应用程序';使用npm的依赖关系?,node.js,npm,Node.js,Npm,有没有一种简单的方法可以重新安装我的应用程序所依赖的所有软件包(即它们在我的应用程序节点模块文件夹中)?我能看到的最简单的方法是删除节点模块文件夹并执行npm安装正确的方法是执行npm更新。这是一个非常强大的命令,它更新丢失的软件包,并检查是否可以使用已安装的软件包的更新版本 阅读以了解如何使用npm。大多数情况下,我使用以下命令来完成所有节点模块的完全重新安装(确保您位于项目文件夹中) 您还可以在删除node\u modules文件夹后运行npm cache clean,以确保没有任何缓存的依
节点模块文件夹并执行npm安装
正确的方法是执行npm更新。这是一个非常强大的命令,它更新丢失的软件包,并检查是否可以使用已安装的软件包的更新版本
阅读以了解如何使用npm。大多数情况下,我使用以下命令来完成所有节点模块的完全重新安装(确保您位于项目文件夹中)
您还可以在删除node\u modules
文件夹后运行npm cache clean
,以确保没有任何缓存的依赖项。npm
更新了install
的CLI命令,并添加了--force
标志
npm install --force
--force
(或-f
)参数将强制npm
获取远程资源,即使磁盘上存在本地副本
请参见您可以使用在npm中找到的
安装后,可以使用以下命令:
reinstall
手动删除node\u模块
文件夹并使npm安装
的唯一区别在于,此命令会自动清除npm的缓存。因此,您可以在一个命令中获得三个步骤
upd:npx重新安装
是一种在不全局安装软件包的情况下运行此命令的方法(仅适用于npm5+)适用于您可以使用的Windows
(if exist node_modules rmdir node_modules /q /s) && npm install
它删除node\u模块
目录,然后执行npm安装
。安装前先卸下可确保重新安装所有软件包。按照此步骤重新安装节点模块并进行更新
即使节点_模块文件夹不存在也可以工作。现在同步执行以下命令。您也可以使用“npm更新”,但我认为这是首选的方式
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
文件:
一板一眼地安装项目
删除节点_模块并通过命令重新安装
rm -rf node_modules && npm i
或者,从npm cli开始,您可以使用backronym:
npm clean-install
资料来源:
同意;假设您已经为应用程序创建了package.json
文件。请注意,删除node\u modules
目录后运行npm install
可能会导致package.json
中定义的依赖项的不同版本被下拉。如果您的应用程序需要非常特定版本的依赖项,请仔细查看npm shrinkwrap
或将node\u modules
目录签入源代码管理。@smithclay我已经在我的应用程序的package.json中定义了包的显式版本,这样就可以了,是吗?@vadim我在测试npm install
的行为,它总是按照package.json的允许重新安装依赖项并将包升级到最新版本。因此,除非您认为其已损坏,否则不需要删除节点\u模块
文件夹。你有没有理由认为它应该被移除?但是,如果目的是删除任何无关的包,则可以执行npm prune
instead@himanshu你说得对npm安装
将所有模块升级到package.json状态。但问题是如何重新安装所有软件包。因此,它们可能已损坏,或者在升级node.js verison后需要重建二进制部分。但是如果没有更新的包,那么这不会起任何作用,对吗?即使包已经是最新版本,我也试图强制重新安装。如果没有丢失的包,它将检查是否可以使用package.json中列出的包的最新版本(包括包的依赖项)。因此,本质上,如果可能的话,它将升级软件包。但它不会重新安装。如果要使用命令执行此操作,可以执行npm uninstall
卸载特定的软件包,或执行npm uninstall
卸载所有软件包。我尝试只执行npm uninstall
,但没有指定软件包,但会引发错误。在执行此操作的文件夹目录中是否有package.json?如果您要卸载全局软件包,则需要添加-g您提供的链接已失效,能否提供一个新的链接?(我发现了,但我不确定是否可以更改为它)npm rebuild
也可能有助于解决本机依赖项的一些问题。如果它有助于其他问题:如果您只是尝试重新安装一个包,npm更新
great@g00glen00b我已经编辑过了,所以现在它确实包含了有用的信息,而没有hyperlinks@iamkeir因为它是在发问8年后发布的,所以值得注意的是,如果package-lock.json丢失,那么这个命令将不起作用。如果在运行这些命令时遇到错误,很可能就是这种情况。要解决这个问题,我运行npmi&&npm缓存验证。
npm ci
npm clean-install