假设我用npm install安装项目包,它查找package.json中要安装的模块。过了一段时间,我发现我不需要某些特定的模块,并从package.json中删除它的依赖项。然后我从package.json中删除了一些其他模块,因为它们不再需要了,其他模块被替代。
npm install
package.json
现在我想清理node_modules文件夹,这样只有package.json中列出的模块留在那里,其余的必须离开,比如npm clean。我知道我可以手动删除它们,但希望有一些很好的准备使用糖的功能。
node_modules
npm clean
你可以删除node_modules/文件夹,然后重新安装package.json中的依赖项。
rm -rf node_modules/ npm install
这将删除当前文件夹中所有已安装的包,只安装package.json中的依赖项。如果之前已经安装了依赖项,npm将尝试使用缓存的版本,避免第二次下载依赖项。
我想你在找npm prune
npm prune
npm prune [<name> [<name ...]] 该命令删除“无关的”包。如果包名为 提供时,则只有与提供的名称之一匹配的包才会存在 移除。< / p > 列表中未列出的包 父包的依赖项列表
npm prune [<name> [<name ...]]
该命令删除“无关的”包。如果包名为 提供时,则只有与提供的名称之一匹配的包才会存在 移除。< / p > 列表中未列出的包 父包的依赖项列表
参见文档:https://docs.npmjs.com/cli/prune
你试过npm西梅吗?
它应该卸载包文件中没有列出的所有内容
https://npmjs.org/doc/cli/npm-prune.html < a href = " https://npmjs.org/doc/cli/npm-prune.html " > < / >
由于其文件夹嵌套,Windows不能删除文件夹,因为其名称太长。要解决这个问题,安装RimRaf:
npm install rimraf -g rimraf node_modules
对于Windows用户,删除此处列出的此类文件夹的替代解决方案:http://ask.osify.com/qa/567
其中,免费工具长路径固定器值得尝试:http://corz.org/windows/software/accessories/Long-Path-Fixer-for-Windows.php
简单的运行
rm -r node_modules
事实上,你可以用它删除任何文件夹。
像rm -r anyfolderwherhisnotdeletablefromshiftdeleteordelete。
只要打开gitbash移动到文件夹的根目录,然后运行这个命令
希望这能有所帮助。
首先全局安装rimraf
npm install rimraf -g
使用CMD进入您的node_modules文件夹所在的路径,并应用下面的命令
rimraf node_modules
使用以下命令代替npm install
npm ci
我在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。
clean
rm -rf node_modules
它运行正常
从版本6.5.0开始,npm支持命令clean-install (ci)来硬刷新所有包。
npm
clean-install
ci
请参阅参考资料:
我找到的最好的一篇文章是:https://trilon.io/blog/how-to-delete-all-nodemodules-recursively
所有从控制台和容易执行从任何文件夹点。
但是作为本文的总结,这个命令用于查找在不同项目中找到的每个node_module文件夹的大小。
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的说明。
Rimraf是一个在windows下模拟Linux命令[rm -rf]的包。这对于跨平台支持非常有用。安装命令行:
以防有人需要,这里是我最近做的一些事情来解决这个问题:
npm ci -如果你想清理所有东西并从头安装所有包:
-它做了一个干净的安装:如果node_modules文件夹存在,npm删除它并安装一个新的。
-它检查一致性: if package-lock。Json不存在或者它不匹配package的内容。Json, NPM停止与错误。
https://docs.npmjs.com/cli/v6/commands/npm-ci
npm-dedupe -如果你想清理当前的node_modules目录,而不删除和重新安装所有的包
搜索本地包树,并试图通过将依赖关系进一步向上移动来简化整体结构,在那里它们可以更有效地由多个依赖包共享。
https://docs.npmjs.com/cli/v6/commands/npm-dedupe
你也可以将npx与rimraf结合使用,用一个命令删除所有节点模块,这样你就不必先安装rimraf。
因此,使用cmd(如果您还没有在那里)转到您的node_modules文件夹所在的路径,并运行以下命令
npx rimraf node_modules