# npm prune

删除无关的包

# 概要

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

# 描述

这个命令删除 "无关" 包。如果提供了包名,则只删除与提供的名称相匹配的包。

无关包是存在于 node_modules 文件夹中,但未作为任何包的依赖项列表列出的包。

如果 --production 标志被指定或 NODE_ENV 环境变量被设置为 production,此命令将删除您的 devDependencies 中指定的包。设置 --no-production 将否定 NODE_ENVproduction

如果使用了 --dry-run 标志,那么实际上不会进行任何更改。

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

在正常操作中,多余的模块会被自动修剪,所以您只需要这个带有 --production 标志的命令。然而,在现实世界中,操作并不总是“正常”的。当发生崩溃或错误时,此命令可以帮助清除产生的任何垃圾。

# 配置

# omit

  • Default: 'dev' | ''
  • Type: "dev", "optional", or "peer" (可以设置多次)

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

注意

这些依赖项仍然被解析并添加到 package-lock.jsonnpm-shrinkwrap.json 文件中。

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

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

# dry-run

  • Default: false
  • Type: Boolean

表示您不希望 npm 进行任何更改,并且只报告它应该做的事情。这可以传递到任何修改本地安装的命令中,例如:install, update, dedupe, uninstall 以及 pack 和 publish。

注意

其他相关命令不支持此功能,例如 dist-tags, owner 等。

# json

  • Default: false
  • Type: Boolean

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

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

并非所有 npm 命令都支持。

# foreground-scripts

  • Default: false
  • Type: Boolean

在前台进程中运行已安装包的所有构建脚本(ie, preinstall, install, postinstall) ,将与主 npm 进程共享标准输入、输出和错误。

注意

这通常会使安装运行速度变慢,并且噪音更大,但对调试很有用。

# ignore-scripts

  • Default: false
  • Type: Boolean

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

注意

如果设置了 ignore-scripts,那些显式地想要运行特定脚本的命令,比如 npm startnpm stopnpm restartnpm testnpm run-script 仍然会运行它们想要运行的脚本,但是它们不会运行任何前脚本或后脚本。

# workspace

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

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

workspace 配置的有效值如下:

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

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

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

# workspaces

  • Default: null
  • Type: null or Boolean

设置为 true 将在所有配置的工作区中运行该命令。

显式地将此设置为 false 将导致如下命令 install 完全忽略工作空间。当没有显式设置时:

  • node_modules 树上操作的命令 (install, update, etc.) 时,将把工作区链接到 node_modules 文件夹中。做其他事情的命令 (test, exec, publish, etc.) 将在根项目上操作,除非在 workspace 配置中指定了一个或多个工作空间。

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

# include-workspace-root

  • Default: false
  • Type: Boolean

当为某个命令启用工作区时,请包含工作区根目录。

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

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

  • Default: false
  • Type: Boolean

当设置文件: 存在于项目根目录之外的协议依赖项将被打包并安装为常规依赖项,而不是创建符号链接。此选项对工作区没有影响。

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