假设我用npm install来安装项目包。Json,用于安装模块。过了一段时间,我看到我不需要某些特定的模块,并从package.json中删除其依赖项。然后我从包中删除一些其他模块。Json,因为它们不再被需要,其他的被替代。

现在我想清理node_modules文件夹,以便只有模块在包中列出。Json保留在那里,其余的必须离开,类似于NPM清理。我知道我可以手动删除它们,但希望有一些很好的准备使用糖的功能。


当前回答

我找到的最好的一篇文章是: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的说明。

其他回答

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

其中,一个免费的工具:Long Path Fixer是很好的尝试:http://corz.org/windows/software/accessories/Long-Path-Fixer-for-Windows.php

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

rm -rf node_modules/
npm install

这将删除当前文件夹中所有已安装的包,只安装package.json中的依赖项。如果之前已经安装了依赖项,npm将尝试使用缓存的版本,避免第二次下载依赖项。

我在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",
  ...
}

如果你只想清理,你可以使用这个rimraf node_modules或rm -rf node_modules。

它运行正常

我想你在找npm西梅

NPM prune [<name> [<name…]] 该命令删除“无关的”包。如果包名为 提供时,则只有与提供的名称之一匹配的包才会存在 移除。 列表上没有列出的无关包 父包的依赖项列表。

查看文档:https://docs.npmjs.com/cli/prune

还可以将npx与rimraf结合使用,用一个命令删除所有节点模块,这样就不必首先安装rimraf。

因此,使用cmd(如果您还没有在那里)转到您的node_modules文件夹所在的路径,并运行以下命令

npx rimraf node_modules