如何计算已安装软件包的数量,包括依赖项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何计算已安装软件包的数量,包括依赖项相关的知识,希望对你有一定的参考价值。
有没有一种简单的方法可以获得已安装的npm软件包的数量,包括应用程序的全局和本地软件包?
例如,在运行create-react-app
[1]之后,当我输入npm ls
命令时,我得到了装满了包和依赖项的屏幕。
如何查找所述包和依赖项的计数(“基数”)使我无法理解。 Tyvm,Keith:^)
参考文献:
尝试:
npm ls --parseable | wc -l
在最新版本的npm
中,它应列出运行npm install
(或npm i
)后安装/添加的软件包数量:
在这种情况下,我正在工作的项目只有几个顶级dependencies
和devDependencies
列在package.json
但281
是所有包添加的实际数量。我发布了一个separate question,希望获得有关审计计数差异的更多信息。
所以我认为我上面列出的是获取特定项目计数的最简单方法。但是,让我们再问一下你的问题......
Count for a Project
见上文(基本上删除你的node_modules
目录并运行npm i
)。
Count for a Specific Package
OP的问题与create-react-app
有关。那么,如果我想查看create-react-app
的总包数呢?
- 从新目录开始。
- 运行
npm i create-react-app
。 - 看输出......
为什么要创建一个新的目录?因为现有项目可能已经安装了一些create-react-app
s依赖项,从而导致added
计数不同:
Count Global Packages
我还没有对这个问题有一个很好的答案(但如果遇到问题,我很乐意更新答案)。因为全局安装(npm i -g ...
)不存储在全局package.json
中,我认为你不能单独运行npm i -g
来计算。似乎一种方法可能是做OP所提到的,意思是......
- 运行
npm ls
。 - 将输出复制到文本编辑器中并进行行计数。
我确信一些bash向导可以通过将npm ls
的输出传递给另一个或多个CLI命令来自动执行此操作,例如(npm ls | count-lines
)。
这里需要注意的一点是,我并不是100%确定行数是包的数量的一对一映射。我似乎回忆起npm
将list
作为一个包依赖的实例,然后在它旁边加上括号,表示它只安装了一次(但列出了多次),符号链接等等。所以再次,不确定一个很好的解决方案全局的。
更新:
npm ls
将列出与deduped
相关的某些依赖关系,如下所示:
loud-rejection@1.6.0 deduped
所以npm ls
直线计数并不是一个完美的方法,除非你删除deduped
线并考虑到像这样的其他标志。
以上是关于如何计算已安装软件包的数量,包括依赖项的主要内容,如果未能解决你的问题,请参考以下文章
如何强制 JBoss 部署使用特定版本的依赖项而不是已安装的模块?
如何直接从 debian/control 文件安装构建依赖项?