阅读(2326) (8)

npm 罗列 ls

2021-09-06 14:40:49 更新

列出已安装的软件包

概要

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


aliases: list, la, ll

描述

此命令将以树状结构将已安装软件包的所有版本及其依赖项打印到标准输出。

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

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

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

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

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

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

注意:设计变更待定

npm ls命令的输出和行为作了吨的感觉,当NPM创造了node_modules那个天真的嵌套每个依赖文件夹。在这种情况下,磁盘上包的逻辑依赖关系图和物理树将大致相同。

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

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

此外,在 npm 获得ls命令(在 0.0.2 版本中!)后的几年里,依赖图作为一般规则变得更大。因此,为了避免向终端倾倒过多的内容,npm ls现在只显示顶级依赖项,除非--all提供。

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

配置

all 所有

  • 默认值:false
  • 类型:Boolean

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

json

  • 默认值:false
  • 类型:Boolean

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

npm pkg set它允许在将设置值保存到您的package.json.并非所有 npm 命令都支持。

long

  • 默认值:false
  • 类型:Boolean

显示在扩展信息lssearch以及help-search

parseable 可解析

  • 默认值:false
  • 类型:Boolean

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

global 全局

  • 默认值:false
  • 类型:Boolean

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

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

depth 深度

  • 默认值:Infinity如果--all设置,否则1
  • 类型:nullNumber

递归包时要走的深度npm ls

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

omit 忽略

= 默认值:如果NODE_ENV环境变量设置为 'production',则为'dev ',否则为空。

  • 类型:“dev”、“optional”或“peer”(可多次设置)

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

请注意,这些依赖的仍然解决,加入 package-lock.jsonnpm-shrinkwrap.json文件。它们只是没有物理安装在磁盘上。

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

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

link 链接

  • 默认值:false
  • 类型:Boolean

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

package-lock-only 仅包锁

  • 默认值:false
  • 类型:Boolean

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

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

对于list这个装置的输出将根据由所描述的树 package-lock.json,而不是内容node_modules

unicode

  • 默认值:false在Windows中,真正在用Unicode语言环境MAC / Unix系统,由定义LC_ALLLC_CTYPELANG环境变量。
  • 类型:Boolean

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

workspace 工作区

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

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

workspace配置的有效值为:

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

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

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

workspaces 工作区

  • 默认值:false
  • 类型:Boolean

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

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