目录
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.json
或 npm-shrinkwrap.json
文件中。它们只是没有物理地安装在磁盘上。
如果包类型同时出现在 --include
和 --omit
列表中,则它将被包含。
如果最终的 omit 列表包含 'dev'
,则对于所有生命周期脚本,NODE_ENV
环境变量将设置为 'production'
。
包含
- 默认
- 类型:"prod"、"dev"、"optional" 或 "peer"(可以设置多次)
允许定义要安装的依赖项类型的选项。
这是 --omit=<type>
的反义词。
在 --include
中指定的依赖类型将不会被省略,无论在命令行上省略/包含的指定顺序如何。
试运行
- 默认:false
- 类型:布尔值
表示您不希望 npm 进行任何更改,并且它只应报告它将执行的操作。这可以传递到任何修改本地安装的命令中,例如 install
、update
、dedupe
、uninstall
,以及 pack
和 publish
。
注意:其他与网络相关的命令(例如 dist-tags
、owner
等)不支持此命令。
json
- 默认:false
- 类型:布尔值
是否输出 JSON 数据,而不是正常输出。
- 在
npm pkg set
中,它会在将设置值保存到package.json
之前,使用 JSON.parse() 解析设置值。
并非所有 npm 命令都支持。
前台脚本
- 默认:
false
,除非使用npm pack
或npm publish
,在这种情况下,默认值为true
- 类型:布尔值
在前台进程中运行所有构建脚本(即 preinstall
、install
和 postinstall
)脚本,为安装的包共享标准输入、输出和错误,以及主 npm 进程。
请注意,这通常会导致安装运行速度变慢,并且噪声更大,但可以用于调试。
忽略脚本
- 默认:false
- 类型:布尔值
如果为 true,则 npm 不会运行 package.json 文件中指定的脚本。
请注意,明确用于运行特定脚本的命令,例如 npm start
、npm stop
、npm restart
、npm test
和 npm 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 没有影响。