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是所有添加

是否有一种简单的方法可以获取应用程序的全局和本地已安装的npm包数

例如,在运行
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
    标志不同的结果?