npm-prune

移除多余的包

选择 CLI 版本

概述

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

描述

此命令移除“多余”的包。如果提供包名称,则只移除与提供名称匹配的包。

多余的包是指存在于 node_modules 文件夹中,但未在任何包的依赖列表中列出的包。

如果指定了 --omit=dev 标志或 NODE_ENV 环境变量设置为 production,此命令将移除在 devDependencies 中指定的包。

如果使用了 --dry-run 标志,则不会真正进行任何更改。

如果使用了 --json 标志,则 npm prune 进行的更改(或使用 --dry-run 时将进行的更改)将作为 JSON 对象打印。

在正常操作中,多余的模块会自动修剪,因此您只需使用 --production 标志即可使用此命令。但是,在现实世界中,操作并不总是“正常的”。当发生崩溃或错误时,此命令可以帮助清理任何由此产生的垃圾。

配置

省略

  • 默认:如果 NODE_ENV 环境变量设置为 'production',则为 'dev',否则为空。
  • 类型:"dev"、"optional" 或 "peer"(可以设置多次)

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

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

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

如果最终的 omit 列表包含 'dev',则对于所有生命周期脚本,NODE_ENV 环境变量将设置为 'production'

包含

  • 默认
  • 类型:"prod"、"dev"、"optional" 或 "peer"(可以设置多次)

允许定义要安装的依赖项类型的选项。

这是 --omit=<type> 的反义词。

--include 中指定的依赖类型将不会被省略,无论在命令行上省略/包含的指定顺序如何。

试运行

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

表示您不希望 npm 进行任何更改,并且它只应报告它将执行的操作。这可以传递到任何修改本地安装的命令中,例如 installupdatededupeuninstall,以及 packpublish

注意:其他与网络相关的命令(例如 dist-tagsowner 等)支持此命令。

json

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

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

  • npm pkg set 中,它会在将设置值保存到 package.json 之前,使用 JSON.parse() 解析设置值。

并非所有 npm 命令都支持。

前台脚本

  • 默认:false,除非使用 npm packnpm publish,在这种情况下,默认值为 true
  • 类型:布尔值

在前台进程中运行所有构建脚本(即 preinstallinstallpostinstall)脚本,为安装的包共享标准输入、输出和错误,以及主 npm 进程。

请注意,这通常会导致安装运行速度变慢,并且噪声更大,但可以用于调试。

忽略脚本

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

如果为 true,则 npm 不会运行 package.json 文件中指定的脚本。

请注意,明确用于运行特定脚本的命令,例如 npm startnpm stopnpm restartnpm testnpm run-script,如果设置了 ignore-scripts,它们仍然会运行其目标脚本,但它们不会运行任何预脚本或后脚本。

工作区

  • 默认
  • 类型:字符串(可以设置多次)

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

对于 workspace 配置,有效值是:

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

当设置为 npm init 命令时,这可以设置为一个尚未存在的 workspace 文件夹,以创建该文件夹并将其设置为项目中一个全新的 workspace。

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

工作区

  • 默认值:null
  • 类型:null 或布尔值

设置为 true 以在所有配置的 workspace 的上下文中运行命令。

显式地将此设置为 false 会导致像 install 这样的命令完全忽略 workspace。当没有显式设置时

  • node_modules 树(安装、更新等)上运行的命令会将 workspace 链接到 node_modules 文件夹中。 - 执行其他操作的命令(测试、执行、发布等)将在根项目上运行,除非workspace 配置中指定了一个或多个 workspace。

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

包含工作区根目录

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

当为命令启用 workspace 时,包含 workspace 根目录。

当为 false 时,通过 workspace 配置指定单个 workspace,或通过 workspaces 标志指定所有 workspace,会导致 npm 仅在指定的 workspace 上运行,而不是在根项目上运行。

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

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

当设置文件:协议依赖项时,将打包并安装为常规依赖项,而不是创建符号链接。此选项对 workspace 没有影响。

另请参阅