如何清理不在package.json中的软件包的node_modules文件夹?

假设我安装了项目包,npm install其中包含package.json要安装的模块。一段时间后,我发现不需要某些特定的模块,并从中删除了对它的依赖package.json然后我从中删除了一些其他模块,package.json因为不再需要它们,而其他模块则被替换。

现在,我要清理node_modules文件夹,以便只有其中列出的模块可以package.json呆在那儿,其余的必须去掉,例如npm clean我知道我可以手动删除它们,但希望为此可以使用糖功能。

SamTony猿2020/03/18 17:55:03

删除/编辑package-lock.json中不需要的程序包(程序包名称将写在依赖关系和devDependencies下),然后

npm install

JinJin逆天2020/03/18 17:55:03

使用以下命令代替npm install

npm ci
逆天小胖Mandy2020/03/18 17:55:03

对于Windows用户,此处列出的删除此文件夹的替代解决方案:http : //ask.osify.com/qa/567

其中,有一个免费工具:Long Path Fixer可以尝试:http : //corz.org/windows/software/accessories/Long-Path-Fixer-for-Windows.php

EvaEva斯丁2020/03/18 17:55:03

我在package.json中添加了几行:

"scripts": {
  ...
  "clean": "rmdir /s /q node_modules",
  "reinstall": "npm run clean && npm install",
  "rebuild": "npm run clean && npm install && rmdir /s /q dist && npm run build --prod",
  ...
}

如果只想clean使用,可以使用rimraf node_modulesrm -rf node_modules

工作正常

番长Pro2020/03/18 17:55:03

从6.5.0版本开始,npm支持命令clean-install来强制刷新所有软件包

达蒙斯丁2020/03/18 17:55:02

您尝试过npm修剪吗?

它应该卸载软件包文件中未列出的所有内容

https://npmjs.org/doc/cli/npm-prune.html

启人Green2020/03/18 17:55:02

我想你在找 npm prune

npm prune [<name> [<name ...]]

此命令删除“外部”软件包。如果提供了软件包名称,则仅删除与提供的名称之一匹配的软件包。

无关软件包是未在父软件包的依赖项列表中列出的软件包。

请参阅文档:https : //docs.npmjs.com/cli/prune

小胖蛋蛋前端2020/03/18 17:55:02

简单就跑

rm -r node_modules

实际上,您可以使用此方法删除任何文件夹。

rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete

只需打开gitbash移动到文件夹的根目录并运行此命令

希望这会有所帮助。

斯丁理查德2020/03/18 17:55:02

您可以删除node_modules /文件夹,然后从package.json重新安装依赖项。

rm -rf node_modules/
npm install

这将清除当前文件夹中所有已安装的软件包,并且仅安装package.json中的依赖项。如果先前已安装依赖项,则npm将尝试使用缓存的版本,避免再次下载依赖项。

GilJinJin2020/03/18 17:55:02

首次在全球范围内安装rimraf

npm install rimraf -g

使用cmd转到您的node_modules文件夹所在的路径,并在以下命令中应用

rimraf node_modules
乐米亚2020/03/18 17:55:02

由于文件夹嵌套,Windows无法删除该文件夹,因为其名称太长。要解决此问题,请安装RimRaf:

npm install rimraf -g

rimraf node_modules