假设我安装了项目包,npm install
其中包含package.json
要安装的模块。一段时间后,我发现不需要某些特定的模块,并从中删除了对它的依赖package.json
。然后,我从中删除了一些其他模块,package.json
因为不再需要它们,而其他模块则被替换。
现在,我要清理node_modules
文件夹,以便只有列在package.json
其中的模块可以呆在那里,其余的必须进入,如npm clean
。我知道我可以手动将其删除,但希望为此可以使用糖功能。
假设我安装了项目包,npm install
其中包含package.json
要安装的模块。一段时间后,我发现不需要某些特定的模块,并从中删除了对它的依赖package.json
。然后,我从中删除了一些其他模块,package.json
因为不再需要它们,而其他模块则被替换。
现在,我要清理node_modules
文件夹,以便只有列在package.json
其中的模块可以呆在那里,其余的必须进入,如npm clean
。我知道我可以手动将其删除,但希望为此可以使用糖功能。
Answers:
我想你在找 npm prune
npm prune [<name> [<name ...]]
此命令删除“外部”软件包。如果提供了软件包名称,则仅删除与提供的名称之一匹配的软件包。
无关软件包是未在父软件包的依赖项列表中列出的软件包。
请参阅文档:https : //docs.npmjs.com/cli/prune
npm dedupe
docs.npmjs.com/cli/dedupe。它试图通过将依赖关系上移树来简化节点树。
您可以删除node_modules /文件夹,然后从package.json重新安装依赖项。
rm -rf node_modules/
npm install
这将清除当前文件夹中所有已安装的软件包,并且仅安装package.json中的依赖项。如果先前已安装依赖项,则npm将尝试使用缓存的版本,避免再次下载依赖项。
rmdir node_modules /s /q
在Windows上使用。superuser.com/a/179661/440976
prune
选项确实需要您完全连接互联网。
由于文件夹嵌套,Windows无法删除该文件夹,因为其名称太长。要解决此问题,请安装RimRaf:
npm install rimraf -g
rimraf node_modules
rm -rf node_modules
rm -rf node_modules
在Windows上将无法使用。看到这个解决方案:superuser.com/a/179661/440976
简单就跑
rm -r node_modules
实际上,您可以使用此方法删除任何文件夹。
像rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete。
只需打开gitbash移动到文件夹的根目录并运行此命令
希望这会有所帮助。
首次在全球范围内安装rimraf
npm install rimraf -g
使用cmd转到您的node_modules文件夹所在的路径,并在以下命令中应用
rimraf node_modules
npm prune
是理想的解决方案。
我在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_modules
或rm -rf node_modules
。
工作正常
对于Windows用户,此处列出的删除此文件夹的替代解决方案:http : //ask.osify.com/qa/567
其中,有一个免费工具:Long Path Fixer很好尝试:http : //corz.org/windows/software/accessories/Long-Path-Fixer-for-Windows.php
我发现的最好的文章是这篇文章:https : //trilon.io/blog/how-to-delete-all-nodemodules-recursively
全部来自控制台,易于从任何文件夹点执行。
但作为本文的摘要,此命令可以查找node_module
在不同项目中找到的每个文件夹的大小。
find . -name "node_modules" -type d -prune -print | xargs du -chs
并实际删除它们:
find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
本文还包含Windows Shell的说明。
node_modules
文件夹中,而不是像以前那样,每个依赖项都有自己的依赖项安装在自己的node_modules
文件夹中..具有相同依赖项的无数副本...所以npm prune
考虑到这一点吗?因为那些深层的依赖关系不是写在package.json
项目的主体上的,所以修剪必须是递归的。