Skip to content

概要

bash
npm ls [[<@scope>/]<pkg> ...]

aliases: list, la, ll
npm ls [[<@scope>/]<pkg> ...]

aliases: list, la, ll

描述

--all此命令将以树结构的形式将已安装的所有软件包版本以及指定的依赖项打印到标准输出。

注意:要“自下而上”地了解为什么给定包包含在树中,请使用npm explain

位置参数是name@version-range标识符,它将结果限制为仅指定包的路径。请注意,嵌套包还将显示指定包的路径。例如,npm ls promzard在 npm 的源代码树中运行将显示:

bash
npm@7.24.2 /path/to/npm
└─┬ init-package-json@0.0.4
  └── promzard@0.1.5
npm@7.24.2 /path/to/npm
└─┬ init-package-json@0.0.4
  └── promzard@0.1.5

它将打印出无关的、丢失的和无效的包。

如果项目为依赖项指定了 git url,这些依赖项将显示在 name@version 后面的括号中,以便用户更容易识别项目的潜在分支。

显示的树是逻辑依赖关系树,基于包依赖关系,而不是node_modules文件夹的物理布局。

当作为ll或运行时la,它默认显示扩展信息。

note-design-changes-pending

当 npm 创建一个天真地嵌套每个依赖项的文件夹时,该npm ls命令的输出和行为变得非常有意义node_modules在这种情况下,磁盘上包的逻辑依赖图和物理树将大致相同。

随着 npm v3 中自动安装时依赖项重复数据删除的出现,ls输出被修改为将逻辑依赖关系图显示为树结构,因为这对大多数用户来说更有用。然而,如果不使用,很多时候npm ls -l就无法显示软件包的实际安装位置!

随着 npm v7 自动安装的出现peerDependencies,这变得更加奇怪,因为peerDependencies逻辑上它们在依赖关系图中位于它们的依赖项“下方”,但物理上始终位于它们在磁盘上的位置或上方。

此外,自从 npm 有了ls命令(0.0.2 版本!)以来,依赖关系图作为一般规则已经变得更大了。因此,为了避免向终端转储过多的内容,npm ls现在仅显示顶级依赖项,除非--all提供。

目前正在对该命令的用例、意图、行为和输出进行彻底的重新检查。npm ls预计npm v8 中的默认人类可读输出至少会发生重大变化。

configuration

all

  • 默认值:假
  • 类型:布尔值

运行npm outdated和时npm ls,设置--all将显示所有过时或已安装的软件包,而不仅仅是当前项目直接依赖的软件包。

json

  • 默认值:假
  • 类型:布尔值

是否输出JSON数据,而不是正常输出。

  • 它允许在npm pkg set将设置值保存到您的package.json.

并非所有 npm 命令都支持。

long

  • 默认值:假
  • 类型:布尔值

显示lssearch、 和中的扩展信息help-search

parseable

  • 默认值:假
  • 类型:布尔值

写入标准输出的命令输出可解析的结果。对于npm search,这将是制表符分隔的表格格式。

global

  • 默认值:假
  • 类型:布尔值

在“全局”模式下运行,以便将包安装到该prefix文件夹而不是当前工作目录中。有关行为差异的更多信息,请参阅文件夹。

  • 软件包将安装到该{prefix}/lib/node_modules文件夹中,而不是当前工作目录中。
  • bin 文件链接到{prefix}/bin
  • 手册页链接到{prefix}/share/man

depth

  • 默认值:Infinity如果--all设置,否则1
  • 类型:空或数字

递归包时的深度npm ls

如果未设置,npm ls将仅显示根项目的直接依赖项。如果--all设置了,npm 将默认显示所有依赖项。

omit

  • 默认值:如果NODE_ENV环境变量设置为“生产”,则为“dev”,否则为空。
  • 类型:“dev”、“可选”或“peer”(可以设置多次)

要从磁盘上的安装树中省略的依赖项类型。

请注意,这些依赖项仍会被解析并添加到package-lock.jsonnpm-shrinkwrap.json文件中。它们只是没有物理安装在磁盘上。

如果包类型同时出现在--include--omit列表中,那么它将被包含在内。

如果生成的省略列表包含'dev',则所有生命周期脚本的NODE_ENV环境变量将设置为。'production'

  • 默认值:假
  • 类型:布尔值

与 一起使用npm ls,将输出限制为仅那些链接的包。

package-lock-only

  • 默认值:假
  • 类型:布尔值

如果设置为 true,则当前操作将仅使用package-lock.json, 忽略node_modules.

update意味着仅package-lock.json会更新,而不是检查node_modules和下载依赖项。

这意味着list输出将基于 描述的树package-lock.json,而不是 的内容node_modules

unicode

  • LC_ALL默认值:在 Windows 上为 false,在具有 unicode 语言环境的 mac/unix 系统上为 true,由、LC_CTYPE或环境变量定义LANG
  • 类型:布尔值

当设置为 true 时,npm 在树输出中使用 unicode 字符。当为 false 时,它使用 ascii 字符而不是 unicode 字形。

workspace

  • 默认:
  • 类型:String(可设置多次)

允许在当前项目的已配置工作区上下文中运行命令,同时通过仅运行此配置选项定义的工作区进行过滤。

配置的有效值为workspace

  • 工作区名称
  • 工作区目录的路径
  • 父工作区目录的路径(将导致选择所有嵌套工作区)

当设置该npm init命令时,可以将其设置为尚不存在的工作空间的文件夹,以创建该文件夹并将其设置为项目中的全新工作空间。

该值不会导出到子进程的环境中。

workspaces

  • 默认值:假
  • 类型:布尔值

允许在所有已配置工作区的上下文中运行命令。

该值不会导出到子进程的环境中。