# npm explain

解释已安装的软件包

# 概要

npm explain <package-spec>

alias: why

# 描述

此命令将打印导致在当前项目中安装给定包的依赖链。

如果提供了一个或多个包规范,那么只有匹配其中一个规范的包才会解释它们的关系。

包规范还可以引用 ./node_modules 中的一个文件夹。

例如,在 npm 的源树中运行 npm explain glob 将显示:

glob@7.1.6
node_modules/glob
  glob@"^7.1.4" from the root project
glob@7.1.1 dev
node_modules/tacks/node_modules/glob
  glob@"^7.0.5" from rimraf@2.6.2
  node_modules/tacks/node_modules/rimraf
    rimraf@"^2.6.2" from tacks@1.3.0
    node_modules/tacks
      dev tacks@"^1.3.0" from the root project

要解释驻留在特定文件夹中的包,请将其作为参数传递给命令。当试图准确地找出为什么要复制给定的依赖项以满足项目中冲突的版本需求时,这可能很有用。

$ npm explain node_modules/nyc/node_modules/find-up
find-up@3.0.0 dev
node_modules/nyc/node_modules/find-up
  find-up@"^3.0.0" from nyc@14.1.1
  node_modules/nyc
    nyc@"^14.1.1" from tap@14.10.8
    node_modules/tap
      dev tap@"^14.10.8" from the root project

# 配置

# json

  • Default: false
  • Type: Boolean

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

  • npm pkg set 支持使用 JSON.parse() 解析集合值,然后保存到你的 package.json

并非所有 npm 命令都支持。

# workspace

  • Default:
  • Type: String (可以设置多次)

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

workspace 配置的有效值如下:

  • 工作区名称
  • 工作区目录的路径
  • 父工作区目录的路径(将导致选择该文件夹中的所有工作区)

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

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

Last Updated: 4/25/2023, 9:49:29 AM