Npm 如何计算已安装软件包的数量,包括依赖项
是否有一种简单的方法可以获取应用程序的全局和本地已安装的npm包数 例如,在运行Npm 如何计算已安装软件包的数量,包括依赖项,npm,count,dependencies,package,Npm,Count,Dependencies,Package,是否有一种简单的方法可以获取应用程序的全局和本地已安装的npm包数 例如,在运行create react app[1]之后,当我输入npm ls命令时,我会看到满是软件包和依赖项的屏幕 如何找到所述包和依赖项的计数()(“基数”)是我无法理解的。Tyvm,基思:^) 参考资料: 在最新版本的npm中,它应该列出运行npm install(或npm i)后安装/添加的软件包数: 在这种情况下,我正在工作的项目只有一些顶级的依赖项和devdependency列在包中。json但是281是所有添加
create react app
[1]之后,当我输入npm ls
命令时,我会看到满是软件包和依赖项的屏幕
如何找到所述包和依赖项的计数()(“基数”)是我无法理解的。Tyvm,基思:^)
参考资料:
在最新版本的
npm
中,它应该列出运行npm install
(或npm i
)后安装/添加的软件包数:
在这种情况下,我正在工作的项目只有一些顶级的依赖项
和devdependency
列在包中。json
但是281
是所有添加包的实际计数。我发表了一篇文章,希望得到更多关于审计计数差异的信息
因此,我认为上面列出的是获取特定项目计数的最简单方法。不过,让我们把你的问题再细分一点
对一个项目有价值
请参见上文(基本上删除node\u模块
目录并运行npmi
)
特定包的计数
OP的问题与create react app
有关。那么,如果我想查看create react app
的包总数,该怎么办
npm i create react app
create-react-app
s依赖项,因此导致添加的计数不同:
计算全局包数
我还没有一个很好的答案(但是如果我们遇到一个,我很乐意更新答案)。由于全局安装(npm i-g…
)不存储在全局包.json中,我认为您无法单独运行npm i-g
来获取计数。似乎一种方法可能是做OP提到的事情,意思是
运行npm ls
将输出复制到文本编辑器中并进行行计数
我相信一些bash向导可以通过将npm ls
的输出管道化到另一个或两个CLI命令(例如(npm ls | count line
)来实现自动化
但这里需要注意的一点是,我不能100%确定行数是包数的一对一映射。我似乎记得有这样的例子,npm
将在一个包下列出一个依赖项,但在它旁边放上括号,表示它只安装了一次(但列出了多次),是符号链接的,等等。所以,同样,还不确定是否有一个很好的全局解决方案
更新:
npm ls
将在其旁边列出某些重复数据消除的依赖项,如下所示:
loud-rejection@1.6.0 deduped
因此,使用直线计数的npm ls
不是一个完美的方法,除非您删除重复数据消除的
行并考虑其他类似的标志。尝试:
npm ls --parseable | wc -l
为了计算唯一依赖项,您应该排除重复数据消除的包:
npm ls | sed '/deduped$/d' | wc -l
作为一种解决方法,我一直在复制粘贴到某个编辑器中,然后进行行计数。这似乎比依赖项的真实数量(基于运行npm install
的输出)多了一个,供任何怀疑此标志的人参考,-parseable隐式重复删除您的依赖项;它是节点\模块文件夹中现有安装目录的列表,包括嵌套安装文件夹。重复数据消除安装会自动提升到根目录为什么这会产生与npm ls
上的--parseable
标志不同的结果?