如何计算macOS上安装的所有node_modules的大小?

Sun*_*nny 6 node.js npm npm-install

我正在寻找一个简单的命令来运行计算全局安装的所有node_modules的大小(而不是位于项目中的)

joe*_*ler 12

我对此也很好奇。这个命令应该有效:

find . -type d -name node_modules -prune | tr '\n' '\0' |  xargs -0 du -sch
Run Code Online (Sandbox Code Playgroud)

快速说明(2021 年 11 月更新):

  1. 第一部分很简单,find . -type d -name node_modules找到当前目录下-type d命名的每个目录该标志防止下降到匹配的路径,因此像这样的嵌套目录将被隐藏。node_modules.-prunesite/node_modules/some-lib/node_modules

  2. 我们只想要第一个node_modules,因此反向 grepgrep -v node_modules.*node_modules 会删除包含多个的每个匹配路径node_modules(为了支持 find 更快的-prune标志而删除。)

  3. tr '\n' '\0'命令在这里只是为了防止以下xargs命令因包含空格或特殊字符的文件名而阻塞。\n这用 ASCII NUL字符替换了正常的换行符\0

  4. 最后, xargs -0 du -sch将所有内容收集到参数列表中,并将结果传递给du -sch报告每个条目的磁盘使用情况以及使用“人类可读”输出的累积总数。

node_modules我在项目文件夹中发现了超过 6 GB 的各种目录。


小智 1

如果您正在使用 nvm:

查找 ~/.nvm -type d -name 'node_modules' | xargs 杜 -csh | grep 总计

如果您不使用 nvm,或者您也想包含项目,则可以更改 find 命令。如果你想找到全局 node_modules 所在的位置,请运行 npm list -g ,它会告诉你包所在的位置。