我正在寻找一个简单的命令来运行计算全局安装的所有node_modules(而不是位于项目中的那些)的大小
答案 0 :(得分:0)
如果您使用的是nvm:
找到〜/ .nvm -type d -name'node_modules'| xargs du -csh | grep total
如果您不使用nvm,或者您也想包含项目,则可以更改find命令。如果要查找全局node_modules的位置,请运行npm list -g,它将告诉您软件包的位置。
答案 1 :(得分:0)
我对此也很好奇。此命令应该起作用:
find . -type d -name node_modules | grep -v node_modules.*node_modules | tr '\n' '\0' | xargs -0 du -sch
快速说明:
第一部分很容易,find . -type d -name node_modules
查找当前目录-type d
下每个名为node_modules
的目录.
,但是,它还包括嵌套的node_modules目录,例如{ {1}}。
我们只想要第一个site/node_modules/some-lib/node_modules
,因此反grep node_modules
会去除每个包含多个grep -v node_modules.*node_modules
的匹配路径。
仅在此处使用node_modules
命令,以防止后面的tr '\n' '\0'
命令阻塞带有空格或特殊字符的文件名。这将正常的行返回xargs
替换为ASCII NUL \n
字符。
最后,\0
将所有内容收集到参数列表中,并将结果传递到xargs -0 du -sch
,该结果将报告每个条目的磁盘使用情况,并使用“人类可读”的输出来累加总数。
我在项目文件夹中发现了超过6 GB的du -sch
什锦目录。
答案 2 :(得分:0)
我使用此命令find . -name "node_modules" -type d -prune -print | xargs du -chs