有没有一种简单的方法可以获得已安装的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,希望获得有关审计计数差异的更多信息。
所以我认为我上面列出的是获取特定项目计数的最简单方法。但是,让我们再问一下你的问题......
见上文(基本上删除你的node_modules
目录并运行npm i
)。
OP的问题与create-react-app
有关。那么,如果我想查看create-react-app
的总包数呢?
npm i create-react-app
。为什么要创建一个新的目录?因为现有项目可能已经安装了一些create-react-app
s依赖项,从而导致added
计数不同:
我还没有对这个问题有一个很好的答案(但如果遇到问题,我很乐意更新答案)。因为全局安装(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
相关的某些依赖关系,如下所示:
[email protected] deduped
所以npm ls
直线计数并不是一个完美的方法,除非你删除deduped
线并考虑到像这样的其他标志。