如何统计已安装的非devDependencies类npm模块数量
统计项目中生产依赖的npm模块数量
当然有办法实现啦!虽然没有专门的单条npm命令直接给出数量,但我们可以组合npm的参数和一些工具来搞定。下面给你几个实用的方案:
方案1:直接用npm ls结合文本处理(统计直接生产依赖)
如果你只想统计直接安装的生产依赖(不包含子依赖),可以用npm ls的--prod参数只显示生产依赖,再结合文本过滤工具统计数量:
npm ls --prod --depth=0 | grep -v '^└──' | grep -v '^$' | wc -l
--prod(或--production):只列出生产环境依赖,排除devDependencies--depth=0:只显示顶层的直接依赖,不展开子依赖- 后续的
grep和wc -l:过滤掉树形输出的符号行和空行,最后统计有效行数
方案2:用JSON输出+jq工具(更准确灵活)
如果想要更精准的结果,或者需要处理子依赖,推荐用npm的JSON输出格式,结合jq(一个轻量的JSON处理工具)来统计:
统计直接生产依赖数量
npm ls --prod --depth=0 --json | jq '.dependencies | keys | length'
这个命令会直接输出数字,就是你的直接生产依赖总数。jq部分的作用是提取dependencies对象的所有键(也就是包名),然后返回键的数量。
统计所有生产依赖(包含子依赖,去重)
如果要统计项目中所有用到的生产依赖(包括间接安装的子依赖,且去重),可以用:
npm ls --prod --json | jq '.. | .dependencies? | keys? | .[]' | sort -u | wc -l
这里用jq递归遍历所有依赖,提取所有包名,然后sort -u去重,最后统计数量。
额外:查看生产/开发依赖列表
如果需要明确看到哪些是生产依赖、哪些是开发依赖,也可以用JSON输出配合jq:
- 查看直接生产依赖列表:
npm ls --prod --depth=0 --json | jq '.dependencies | keys' - 查看直接开发依赖列表:
npm ls --dev --depth=0 --json | jq '.devDependencies | keys'
内容的提问来源于stack exchange,提问作者Ben Gubler
相关产品推荐
相关产品推荐

