配置

关于 npm 配置,你可能想知道的更多
目录

描述

npm 从以下来源获取其配置值,按优先级排序:

命令行标志

--foo bar 放在命令行上会将 foo 配置参数设置为 "bar"-- 参数告诉 cli 解析器停止读取标志。 在不指定任何值的情况下使用 --flag 会将值设置为 true

例子: --flag1 --flag2 会将两个配置参数设置为 true,而 --flag1 --flag2 bar 会将 flag1 设置为 true,将 flag2 设置为 bar。 最后,--flag1 --flag2 -- bar 将两个配置参数都设置为 true,并将 bar 作为命令参数。

环境变量

任何以 npm_config_ 开头的环境变量都将被解释为配置参数。 例如,将 npm_config_foo=bar 放入您的环境中会将 foo 配置参数设置为 bar。 任何未赋值的环境配置都将被赋值为 true。 配置值不区分大小写,因此 NPM_CONFIG_FOO=bar 的工作方式相同。 但是,请注意,在 scripts 内部,npm 将设置自己的环境变量,并且 Node 会更喜欢那些小写版本,而不是您可能设置的任何大写版本。 详情见此问题

请注意,您需要使用下划线而不是破折号,因此 --allow-same-version 将变为 npm_config_allow_same_version=true

npmrc 文件

四个相关文件是:

  • 每个项目的配置文件 (/path/to/my/project/.npmrc)
  • 每个用户的配置文件(默认为 $HOME/.npmrc;可通过 CLI 选项 --userconfig 或环境变量 $NPM_CONFIG_USERCONFIG 进行配置)
  • 全局配置文件(默认为 $PREFIX/etc/npmrc;可通过 CLI 选项 --globalconfig 或环境变量 $NPM_CONFIG_GLOBALCONFIG 进行配置)
  • npm 的内置配置文件(/path/to/npm/npmrc

有关详细信息,请参阅 npmrc

默认配置

运行 npm config ls -l 以查看一组 npm 内部的配置参数,如果未指定其他参数,则为默认值。

速记和其他 CLI 细节

在命令行上解析以下简写:

  • -a--all
  • --enjoy-by--before
  • -c--call
  • --desc--description
  • -f--force
  • -g--global
  • --iwr--include-workspace-root
  • -L--location
  • -d--loglevel info
  • -s--loglevel silent
  • --silent--loglevel silent
  • --ddd--loglevel silly
  • --dd--loglevel verbose
  • --verbose--loglevel verbose
  • -q--loglevel warn
  • --quiet--loglevel warn
  • -l--long
  • -m--message
  • --local--no-global
  • -n--no-yes
  • --no--no-yes
  • -p--parseable
  • --porcelain--parseable
  • -C--prefix
  • --readonly--read-only
  • --reg--registry
  • -S--save
  • -B--save-bundle
  • -D--save-dev
  • -E--save-exact
  • -O--save-optional
  • -P--save-prod
  • -?--usage
  • -h--usage
  • -H--usage
  • --help--usage
  • -v--version
  • -w--workspace
  • --ws--workspaces
  • -y--yes

如果指定的配置参数明确地解析为已知的配置参数,则将其扩展为该配置参数。 例如:

npm ls --par
# same as:
npm ls --parseable

如果多个单字符速记串在一起,并且生成的组合明确地不是某个其他配置参数,那么它会扩展为它的各个组成部分。 例如:

npm ls -gpld
# same as:
npm ls --global --parseable --long --loglevel info

配置设置

_auth

  • 默认值: null
  • 类型: 空值或字符串

对 npm 注册表进行身份验证时使用的基本身份验证字符串。 这将仅用于对 npm 注册表进行身份验证。 对于其他注册表,您需要像 "//other-registry.tld/:_auth" 一样对其进行范围

警告: 这通常不应通过命令行选项设置。 通过运行 npm login 使用存储在 ~/.npmrc 文件中的注册表提供的身份验证承载令牌更安全。

access

  • 默认值: 'public' 用于新包,现有包不会改变当前级别
  • 类型: 空值、"restricted" 或 "public"

如果您不希望您的范围包公开可见(和可安装),请设置 --access=restricted

无范围的包不能设置为 restricted

注意: 这默认为不更改现有包的当前访问级别。 在发布期间指定值 restrictedpublic 将更改对现有包的访问权限,就像 npm access set status 一样。

all

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

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

allow-same-version

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

防止在使用 npm version 将新版本设置为与当前版本相同的值时引发错误。

audit

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

当 "true" 将审计报告与当前 npm 命令一起提交到默认注册表和为范围配置的所有注册表时。 有关提交内容的详细信息,请参阅 npm audit 的文档。

audit-level

  • 默认值: null
  • 类型: 空、"info"、"low"、"moderate"、"high"、"critical" 或 "none"

npm audit 以非零退出代码退出的最低漏洞级别。

auth-type

  • 默认值: "web"
  • 类型: "legacy" 或 "web"

login 使用什么身份验证策略。 请注意,如果给出 otp 配置,则此值将始终设置为 legacy

before

  • 默认值: null
  • 类型: 空或日期

如果传递给 npm install,将重建 npm 树,以便只安装 --before 时间上或之前可用的版本。 如果当前的直接依赖集没有可用的版本,则该命令将出错。

如果请求的版本是 dist-tag 并且给定的标签没有通过 --before 过滤器,则将使用小于或等于该标签的最新版本。 例如,foo@latest 可能会安装 foo@1.2,即使 latest2.0

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

告诉 npm 为包的可执行文件创建符号链接(或 Windows 上的 .cmd 垫片)。

设置为 false 使其不执行此操作。 这可以用来解决某些文件系统不支持符号链接的事实,即使在表面上是 Unix 系统上也是如此。

browser

  • 默认值: OS X: "open",Windows: "start"、其他: "xdg-open"
  • 类型: 空值、布尔值或字符串

npm 命令调用以打开网站的浏览器。

设置为 false 以抑制浏览器行为,而是将 url 打印到终端。

设置为 true 以使用默认系统 URL 打开器。

ca

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

受信任的证书颁发机构签名证书,可用于与注册表的 SSL 连接。 值应采用 PEM 格式(Windows 将其称为 "Base-64 编码的 X.509 (.CER)"),并用字符串 "\n" 替换换行符。 例如:

ca="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"

设置为 null 仅允许 "known" 注册商,或设置为特定 CA 证书以仅信任该特定签名机构。

通过指定证书数组可以信任多个 CA:

ca[]="..."
ca[]="..."

另请参阅 strict-ssl 配置。

cache

  • 默认值: Windows: %LocalAppData%\npm-cache,Posix: ~/.npm
  • 类型: 路径

npm 的缓存目录的位置。

cafile

  • 默认值: null
  • 类型: 路径

包含一个或多个证书颁发机构签名证书的文件的路径。 类似于 ca 设置,但允许多个 CA,以及将 CA 信息存储在磁盘上的文件中。

call

  • 默认值: ""
  • 类型: 字符串

npm execnpx 的可选配套选项,允许指定自定义命令与已安装的包一起运行。

npm exec --package yo --package generator-node --call "yo node"

ci-name

  • 默认值: 当前 CI 系统的名称,如果不在已知 CI 平台上,则为 null
  • 类型: 空值或字符串

持续集成系统的名称。 如果未明确设置,npm 将使用 ci-info 模块检测当前 CI 环境。

cidr

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

这是使用 npm token create 命令配置受限访问令牌时要使用的 CIDR 地址列表。

color

  • 默认值: true 除非 NO_COLOR 环境设置为 '0' 以外的值
  • 类型: "always" 或布尔值

如果为 false,则从不显示颜色。 如果 "always" 则始终显示颜色。 如果为真,则仅打印 tty 文件描述符的颜色代码。

commit-hooks

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

使用 npm version 命令时运行 git commit hooks。

depth

  • 默认值: 如果设置了 --all,则为 Infinity,否则为 1
  • 类型: 空值或数字

npm ls 递归包时的深度。

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

description

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

显示 npm search 中的描述

diff

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

定义要在 npm diff 中比较的参数。

diff-dst-prefix

  • 默认值: "b/"
  • 类型: 字符串

npm diff 输出中使用的目标前缀。

diff-ignore-all-space

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

比较 npm diff 中的行时忽略空格。

diff-name-only

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

使用 npm diff 时仅打印文件名。

diff-no-prefix

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

不要在 npm diff 输出中显示任何源或目标前缀。

注意: 这会导致 npm diff 忽略 --diff-src-prefix--diff-dst-prefix 配置。

diff-src-prefix

  • 默认值: "a/"
  • 类型: 字符串

npm diff 输出中使用的源前缀。

diff-text

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

将所有文件视为 npm diff 中的文本。

diff-unified

  • 默认值: 3 * 类型: 数字

要在 npm diff 中打印的上下文行数。

dry-run

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

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

注意: 其他网络相关命令不支持此功能,例如 dist-tagsowner 等。

editor

  • 默认值: The EDITOR or VISUAL environment variables, or '%SYSTEMROOT%\Windows 上的 notepad.exe' 或 Unix 系统上的 'vi'
  • 类型: 字符串

npm editnpm config edit 运行的命令。

engine-strict

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

如果设置为 true,那么 npm 将顽固地拒绝安装(甚至考虑安装)任何声称与当前 Node.js 版本不兼容的包。

这可以通过设置 --force 标志来覆盖。

fetch-retries

  • 默认值: 2 * 类型: 数字

从注册表获取包时要使用的 retry 模块的 "retries" 配置。

在网络故障或 5xx HTTP 错误的情况下,npm 将重试对注册表的幂等读取请求。

fetch-retry-factor

  • 默认值: 10
  • 类型: 数字

获取包时要使用的 retry 模块的 "factor" 配置。

fetch-retry-maxtimeout

  • 默认值: 60000(1 分钟)
  • 类型: 数字

获取包时要使用的 retry 模块的 "maxTimeout" 配置。

fetch-retry-mintimeout

  • 默认值: 10000(10 秒)
  • 类型: 数字

获取包时要使用的 retry 模块的 "minTimeout" 配置。

fetch-timeout

  • 默认值: 300000(5 分钟)
  • 类型: 数字

等待 HTTP 请求完成的最长时间。

force

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

删除了针对不幸的副作用、常见错误、不必要的性能下降和恶意输入的各种保护。

  • 允许在全局安装中破坏非 npm 文件。
  • 允许 npm version 命令在不干净的 git 存储库上工作。
  • 允许使用 npm cache clean 删除缓存文件夹。
  • 允许安装具有 engines 声明需要不同版本的 npm 的包。
  • 允许安装具有 engines 声明需要不同版本 node 的包,即使启用了 --engine-strict
  • 允许 npm audit fix 安装超出您声明的依赖范围的模块(包括 SemVer 的主要更改)。
  • 允许取消发布已发布包的所有版本。
  • 允许在根项目中安装冲突的 peerDependencies。
  • npm init 时隐式设置 --yes
  • 允许破坏 npm pkg 中的现有值
  • 允许取消发布整个包(不仅仅是单个版本)。

如果您对自己想要做什么没有明确的想法,强烈建议您不要使用此选项!

foreground-scripts

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

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

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

format-package-lock

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

package-lock.jsonnpm-shrinkwrap.json 格式化为人类可读的文件。

fund

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

当 "true" 在每个 npm install 的末尾显示消息时,确认正在寻找资金的依赖项的数量。 详见 npm fund

git

  • 默认值: "git"
  • 类型: 字符串

用于 git 命令的命令。 如果计算机上安装了 git,但不在 PATH 中,则将其设置为 git 二进制文件的完整路径。

git-tag-version

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

使用 npm version 命令时标记提交。 将此设置为 false 会导致根本不进行任何提交。

global

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

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

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

globalconfig

  • 默认值: 全局 --prefix 设置加上 'etc/npmrc'。 例如, '/usr/local/etc/npmrc'
  • 类型: 路径

为全局配置选项读取的配置文件。

heading

  • 默认值: "npm"
  • 类型: 字符串

启动所有调试日志输出的字符串。

https-proxy

  • 默认值: null
  • 类型: 空或网址

用于传出 https 请求的代理。 如果设置了 HTTPS_PROXYhttps_proxyHTTP_PROXYhttp_proxy 环境变量,则底层 make-fetch-happen 库将遵循代理设置。

if-present

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

如果为 true,当为 package.jsonscripts 部分中未定义的脚本调用 run-script 时,npm 将不会退出并返回错误代码。 当需要在脚本存在时选择性地运行脚本并在脚本失败时运行失败时,可以使用此选项。 这很有用,例如,在运行可能仅适用于其他通用 CI 设置中的某些构建的脚本时。

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

ignore-scripts

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

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

请注意,如果设置了 ignore-scripts,则明确旨在运行特定脚本的命令(例如 npm startnpm stopnpm restartnpm testnpm run-script)仍将运行其预期的脚本,但它们不会运行任何前置或后置脚本。

include

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

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

这是 --omit=<type> 的倒数。

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

include-staged

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

允许安装由 npm RFC PR #92 定义的 "staged" 已发布包。

这是实验性的,不是由 npm 公共注册表实现的。

include-workspace-root

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

为命令启用工作区时包括工作区根。

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

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

init-author-email

  • 默认值: ""
  • 类型: 字符串

默认情况下,值 npm init 应用于包作者的电子邮件。

init-author-name

  • 默认值: ""
  • 类型: 字符串

默认情况下,应该使用值 npm init 作为包作者的姓名。

init-author-url

  • 默认值: ""
  • 类型: "" 或网址

默认情况下,包作者的主页应使用值 npm init

init-license

  • 默认值: "ISC"
  • 类型: 字符串

默认情况下,值 npm init 应用于包许可证。

init-module

  • 默认值: "~/.npm-init.js"
  • 类型: 路径

将由 npm init 命令加载的模块。 有关详细信息,请参阅 init-package-json 模块的文档或 npm init

init-version

  • 默认值: "1.0.0"
  • 类型: SemVer 字符串

如果 package.json 中尚未设置,npm init 应该默认使用的值作为包版本号。

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

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

install-strategy

  • 默认值: "hoisted"
  • 类型: "hoisted"、"nested"、"shallow" 或 "linked"

设置在 node_modules 中安装包的策略。 提升(默认): 在顶层安装非复制,并在目录结构中根据需要复制。 nested: (以前的 --legacy-bundling)就地安装,无需吊装。 浅层(以前的 --global-style)只在顶层安装直接的 deps。 linked: (实验)安装在 node_modules/.store 中,链接到位,未提升。

json

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

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

  • npm pkg set 中,它可以使用 JSON.parse() 解析集合值,然后再将它们保存到您的 package.json

并非所有 npm 命令都支持。

legacy-peer-deps

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

导致 npm 在构建包树时完全忽略 peerDependencies,就像在 npm 版本 3 到 6 中一样。

如果一个包由于过于严格的 peerDependencies 碰撞而无法安装,它提供了一种解决问题的方法。

这与 --omit=peer 不同,因为 --omit=peer 将避免在磁盘上解包 peerDependencies,但仍会设计一棵树,以便 peerDependencies 可以在正确的位置解包。

不推荐使用 legacy-peer-deps,因为它不会强制执行元依赖可能依赖的 peerDependencies 合约。

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

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

local-address

  • 默认值: null
  • 类型: IP地址

连接到 npm 注册表时使用的本地接口的 IP 地址。 在 0.12 之前的 Node 版本中必须是 IPv4。

location

  • 默认值: "user" 除非传递 --global,否则也会将此值设置为 "global"
  • 类型: "global"、"user" 或 "project"

当传递给 npm config 时,这指的是要使用的配置文件。

当设置为 "global" 模式时,包将安装到 prefix 文件夹而不是当前工作目录。 有关行为差异的更多信息,请参见 文件夹

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

lockfile-version

  • 默认值: 版本 3 如果没有锁定文件,则自动将 v1 锁定文件转换为 v3,否则保持当前锁定文件版本。
  • 类型: 空、1、2、3、"1"、"2" 或 "3"

设置要在 package-lock.json 和 npm-shrinkwrap-json 文件中使用的 lockfile 格式版本。 可能的选项是:

1: npm 版本 5 和 6 使用的锁定文件版本。 缺少一些在安装过程中使用的数据,导致安装速度较慢且可能不太确定。 在与旧的 npm 版本互操作时防止锁定文件流失。

2: npm 版本 7 和 8 使用的默认锁定文件版本。 包括版本 1 锁定文件数据和版本 3 锁定文件数据,以获得最大的确定性和互操作性,但以磁盘上的更多字节为代价。

3: 只有 npm 版本 7 中引入的新的 lockfile 信息。 磁盘上比 lockfile 版本 2 小,但不能与旧的 npm 版本互操作。 如果所有用户都使用 npm 版本 7 或更高版本,则非常理想。

loglevel

  • 默认值: "notice"
  • 类型: "silent"、"error"、"warn"、"notice"、"http"、"info"、"verbose" 或 "silly"

要报告的日志级别。 所有日志都写入调试日志,如果命令执行失败,则打印该文件的路径。

显示比设置更高级别的任何日志。 默认值为 "notice"。

另请参阅 foreground-scripts 配置。

logs-dir

  • 默认值: 缓存中名为 _logs 的目录
  • 类型: 空或路径

npm 的日志目录的位置。 有关详细信息,请参阅 npm logging

logs-max

  • 默认值: 10
  • 类型: 数字

要存储的最大日志文件数。

如果设置为 0,则不会为当前运行写入日志文件。

long

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

lssearchhelp-search 中显示扩展信息。

maxsockets

  • 默认值: 15
  • 类型: 数字

每个源使用的最大连接数(协议/主机/端口组合)。

message

  • 默认值: "%s"
  • 类型: 字符串

npm version 在创建版本提交时使用的提交消息。

消息中的任何 "%s" 都将替换为版本号。

node-options

  • 默认值: null
  • 类型: 空值或字符串

通过 NODE_OPTIONS 环境变量传递给 Node.js 的选项。 这不会影响 npm 本身的执行方式,但会影响生命周期脚本的调用方式。

noproxy

  • 默认值: NO_PROXY 环境变量的值
  • 类型: 字符串(可以设置多次)

应该绕过任何代理的域扩展。

还接受逗号分隔的字符串。

offline

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

强制离线模式: 安装期间不会完成任何网络请求。 要允许 CLI 填充缺失的缓存数据,请参阅 --prefer-offline

omit

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

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

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

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

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

omit-lockfile-registry-resolved

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

此选项会导致 npm 为注册表依赖项创建没有 resolved 密钥的锁定文件。 后续安装将需要使用配置的注册表解析 tarball 端点,这可能会导致安装时间更长。

otp

  • 默认值: null
  • 类型: 空值或字符串

这是来自双重身份验证器的一次性密码。 使用 npm access 发布或更改包权限时需要它。

如果未设置,并且注册表响应失败并询问一次性密码,npm 将在命令行上提示输入一次密码。

pack-destination

  • 默认值: "."
  • 类型: 字符串

npm pack 将保存 tarball 的目录。

package

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

npm exec 安装的一个或多个包

package-lock

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

如果设置为 false,则安装时忽略 package-lock.json 文件。 如果 save 为真,这也将阻止写入 package-lock.json

此配置不影响 npm ci

package-lock-only

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

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

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

对于 list,这意味着输出将基于 package-lock.json 描述的树,而不是 node_modules 的内容。

parseable

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

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

prefer-offline

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

如果为 true,将绕过缓存数据的过时检查,但将从服务器请求丢失的数据。 要强制完全离线模式,请使用 --offline

prefer-online

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

如果为 true,将强制检查缓存数据的陈旧性,使 CLI 立即查找更新,即使是新的包数据也是如此。

prefix

  • 默认值: 在全局模式下,安装 node 可执行文件的文件夹。 否则,最近的父文件夹包含 package.json 文件或 node_modules 文件夹。
  • 类型: 路径

安装全局项目的位置。 如果在命令行上设置,则强制非全局命令在指定文件夹中运行。

preid

  • 默认值: ""
  • 类型: 字符串

"预发布标识符" 用作 semver 的 "prerelease" 部分的前缀。 就像 1.2.0-rc.8 中的 rc

progress

  • 默认值: true 除非在已知的 CI 系统中运行
  • 类型: 布尔值

当设置为 true 时,如果 process.stderr 是 TTY,npm 将在时间密集型操作期间显示进度条。

设置为 false 以抑制进度条。

provenance

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

从受支持的云 CI/CD 系统发布时,包将公开链接到它的构建和发布位置。

proxy

  • 默认值: null
  • 类型: null、false 或 URL

用于传出 http 请求的代理。 如果设置了 HTTP_PROXYhttp_proxy 环境变量,则底层 request 库将遵循代理设置。

read-only

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

这用于在使用 npm token create 命令配置受限访问令牌时将令牌标记为无法发布。

rebuild-bundle

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

安装后重建捆绑的依赖项。

registry

npm 注册表的基本 URL。

replace-registry-host

  • 默认值: "npmjs"
  • 类型: "npmjs"、"never"、"always" 或字符串

定义用配置的注册表替换锁定文件中的注册表主机的行为。

默认行为是将包 dist URL 从默认注册表 (https://registry.npmjs.org ) 替换为配置的注册表。 如果设置为 "never",则使用注册表值。 如果设置为 "always",则每次都将注册表主机替换为配置的主机。

您还可以指定一个裸主机名(例如,"registry.npmjs.org")。

save

  • 默认值: true 除非在使用 npm update 时默认为 false
  • 类型: 布尔值

将已安装的包作为依赖项保存到 package.json 文件中。

npm rm 命令一起使用时,从 package.json 中删除依赖关系。

如果设置为 false,也会阻止写入 package-lock.json

save-bundle

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

如果在安装时使用 --save--save-dev--save-optional 保存一个包,那么也将它放在 bundleDependencies 列表中。

如果设置了 --save-peer,则忽略,因为无法捆绑 peerDependencies。

save-dev

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

将已安装的包保存到 package.json 文件中,名称为 devDependencies

save-exact

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

保存到 package.json 的依赖项将使用精确的版本进行配置,而不是使用 npm 的默认 semver 范围运算符。

save-optional

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

将已安装的包保存到 package.json 文件中,名称为 optionalDependencies

save-peer

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

将已安装的包保存到 package.json 文件中为 peerDependencies

save-prefix

  • 默认值: "^"
  • 类型: 字符串

配置通过 --save--save-dev 安装到 package.json 文件的包版本如何获得前缀。

例如,如果一个包的版本为 1.2.3,默认情况下其版本设置为 ^1.2.3,允许对该包进行小幅升级,但在 npm config set save-prefix='~' 之后,它将设置为 ~1.2.3,仅允许补丁升级。

save-prod

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

将已安装的包专门保存到 dependencies 中。 如果 devDependenciesoptionalDependencies 中已经存在一个包,但您希望将其移动为非可选的生产依赖项,这将非常有用。

如果 --save 为真,并且 --save-dev--save-optional 都不为真,则这是默认行为。

scope

  • 默认值: 当前项目的范围(如果有)或 ""
  • 类型: 字符串

将操作与范围注册表的作用域相关联。

在登录或退出私有注册表时很有用:

<a id="log-in-linking-the-scope-to-the-custom-registry"></a>
# 登录,将范围链接到自定义注册表
npm login --scope=@mycorp --registry=https://registry.mycorp.com
<a id="log-out-removing-the-link-and-the-auth-token"></a>
# 注销,删除链接和身份验证令牌
npm logout --scope=@mycorp

这将导致 @mycorp 映射到注册表,以便将来安装根据模式 @mycorp/package 指定的包。

这也将导致 npm init 创建一个范围包。

<a id="accept-all-defaults-and-create-a-package-named-foowhatever"></a>
# 接受所有默认值,并创建一个名为 "@foo/whatever" 的包,
<a id="instead-of-just-named-whatever"></a>
# 而不仅仅是命名为 "whatever"
npm init --scope=@foo --yes

script-shell

  • 默认值: '/bin/sh' 在 POSIX 系统上, 'cmd.exe' 在 Windows 上
  • 类型: 空值或字符串

用于脚本的 shell 与 npm execnpm runnpm init <package-spec> 命令一起运行。

searchexclude

  • 默认值: ""
  • 类型: 字符串

限制搜索结果的空格分隔选项。

searchlimit

  • 默认值: 20
  • 类型: 数字

限制搜索结果的项目数。 完全不适用于旧版搜索。

searchopts

  • 默认值: ""
  • 类型: 字符串

始终传递给搜索的空格分隔选项。

searchstaleness

  • 默认值: 900
  • 类型: 数字

如果使用旧版搜索端点,则在发出另一个注册表请求之前缓存的年龄(以秒为单位)。

shell

  • 默认值: SHELL 环境变量,或 Posix 上的 "bash",或 Windows 上的 "cmd.exe"
  • 类型: 字符串

npm explore 命令运行的 shell。

sign-git-commit

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

如果设置为 true,则 npm version 命令将使用 -S 提交新的包版本以添加签名。

请注意,git 要求您在 git 配置中设置 GPG 密钥才能正常工作。

sign-git-tag

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

如果设置为 true,则 npm version 命令将使用 -s 标记版本以添加签名。

请注意,git 要求您在 git 配置中设置 GPG 密钥才能正常工作。

strict-peer-deps

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

如果设置为 true,而 --legacy-peer-deps 没有设置,那么任何冲突的 peerDependencies 都将被视为安装失败,即使 npm 可以根据非对等依赖关系合理地猜测出适当的解决方案。

默认情况下,依赖关系图中的冲突 peerDependencies 将使用最近的非对等依赖规范来解决,即使这样做会导致某些包收到超出其包的 peerDependencies 对象中设置的范围的对等依赖。

当执行这样的覆盖时,会打印一条警告,解释冲突和涉及的包。 如果设置了 --strict-peer-deps,则此警告被视为失败。

strict-ssl

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

通过 https 向注册表发出请求时是否进行 SSL 密钥验证。

另请参阅 ca 配置。

tag

  • 默认值: "latest"
  • 类型: 字符串

如果你让 npm 安装一个包并且没有告诉它一个特定的版本,那么它会安装指定的标签。

Also the tag that is added to the package@如果没有给出显式标记,则由 npm tag 命令指定的版本。

当被 npm diff 命令使用时,这是用于获取 tarball 的标签,默认情况下将与本地文件进行比较。

tag-version-prefix

  • 默认值: "v"
  • 类型: 字符串

如果设置,则在使用 npm version 执行版本增量时更改标记新版本时使用的前缀。 要完全删除前缀,请将其设置为空字符串: ""

因为其他工具可能依赖于 npm 版本标签看起来像 v1.0.0 的约定,所以只有在绝对必要时才使用这个属性。 特别是,在为公共包覆盖此设置时要小心。

timing

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

如果为 true,则将计时信息写入缓存或 logs-dir 中特定于进程的 json 文件。 文件名以 -timing.json 结尾。

您可以使用此 json 命令行快速查看它: cat ~/.npm/_logs/*-timing.json | npm exec -- json -g

定时信息也会在终端上报。 要在仍在写入时序文件的同时抑制这种情况,请使用 --silent

umask

  • 默认值: 0 * 类型: 0000..0777 (0..511) 范围内的八进制数字字符串

设置文件和文件夹的文件创建模式时使用的 "umask" 值。

文件夹和可执行文件被赋予一个模式,该模式被 0o777 屏蔽该值。 其他文件的模式是 0o666 屏蔽此值。

请注意,底层系统也会将其自己的 umask 值应用于创建的文件和文件夹,npm 不会绕过这一点,而是将 --umask 配置添加到其中。

因此,大多数 POSIX 系统上有效的默认 umask 值是 0o22,这意味着文件夹和可执行文件以 0o755 模式创建,而其他文件以 0o644 模式创建。

unicode

  • 默认值: 在 Windows 上为 false,在具有 unicode 区域设置的 mac/unix 系统上为 true,如 LC_ALLLC_CTYPELANG 环境变量所定义。
  • 类型: 布尔值

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

update-notifier

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

设置为 false 以在使用比最新版本更旧的 npm 时抑制更新通知。

usage

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

显示有关指定命令的简短用法输出。

user-agent

  • 默认值: "npm/{npm-version} node/{node-version} {platform} {arch} workspaces/{workspaces} {ci}"
  • 类型: 字符串

设置用户代理请求标头。 以下字段将替换为其实际对应项:

  • {npm-version} - 使用的 npm 版本
  • {node-version} - 使用的 Node.js 版本
  • {platform} - process.platform 的值
  • {arch} - process.arch 的值
  • {workspaces} - 如果设置了 workspacesworkspace 选项,则设置为 true
  • {ci} - ci-name 配置的值,如果已设置,前缀为 ci/,如果 ci-name 为空,则为空字符串。

userconfig

  • 默认值: "~/.npmrc"
  • 类型: 路径

用户级配置设置的位置。

这可能会被 npm_config_userconfig 环境变量或 --userconfig 命令行选项覆盖,但不能被 globalconfig 文件中的设置覆盖。

version

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

如果为 true,则输出 npm 版本并成功退出。

仅在命令行上明确指定时才相关。

versions

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

如果为true,则输出 npm 版本以及 node 的 process.versions 映射和当前工作目录 package.json 文件中的版本(如果存在),并成功退出。

仅在命令行上明确指定时才相关。

viewer

  • 默认值: Posix 上的 "man",Windows 上的 "browser"
  • 类型: 字符串

用于查看帮助内容的程序。

设置为 "browser" 以在默认 Web 浏览器中查看 html 帮助内容。

which

  • 默认值: null
  • 类型: 空值或数字

如果有多个资金来源,打开哪个 1-indexed 来源 URL。

workspace

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

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

workspace 配置的有效值为:

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

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

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

workspaces

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

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

显式将此设置为 false 将导致像 install 这样的命令完全忽略工作空间。 未明确设置时:

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

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

workspaces-update

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

如果设置为 true,npm cli 将在可能更改安装到 node_modules 文件夹的工作空间的操作之后运行更新。

yes

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

对 npm 可能在命令行上打印的任何提示自动回答 "yes"。

also

  • 默认值: null
  • 类型: 空值、"dev" 或 "development"
  • 已弃用: Please use --include=开发而不是。

当设置为 devdevelopment 时,这是 --include=dev 的别名。

cache-max

  • 默认值: 无穷
  • 类型: 数字
  • 已弃用: 此选项已被 --prefer-online 弃用

--cache-max=0--prefer-online 的别名

cache-min

  • 默认值: 0 * 类型: 数字
  • 已弃用: 此选项已被 --prefer-offline 弃用。

--cache-min=9999 (or bigger)--prefer-offline 的别名。

cert

  • 默认值: null
  • 类型: 空值或字符串
  • 已弃用: keycert 不再用于大多数注册表操作。 请改用注册表范围 keyfilecertfile。 例子: //other-registry.tld/:keyfile=/路径/to/key.pem //other-registry.tld/:certfile=/path/to/cert.crt

访问注册表时要通过的客户端证书。 值应采用 PEM 格式(Windows 将其称为 "Base-64 编码的 X.509 (.CER)"),并用字符串 "\n" 替换换行符。 例如:

cert="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"

它不是证书文件的路径,但您可以设置注册表范围的 "certfile" 路径,如 "//other-registry.tld/:certfile=/path/to/cert.pem"。

dev

  • 默认值: false
  • 类型: 布尔值
  • 已弃用: Please use --include=开发而不是。

--include=dev 的别名。

global-style

  • 默认值: false
  • 类型: 布尔值
  • 已弃用: 此选项已被 --install-strategy=shallow 弃用

仅在顶层 node_modules 中安装直接依赖项,但提升更深层次的依赖项。 设置 --install-strategy=shallow

init.author.email

  • 默认值: ""
  • 类型: 字符串
  • 已弃用: 请改用 --init-author-email

--init-author-email 的别名

init.author.name

  • 默认值: ""
  • 类型: 字符串
  • 已弃用: 请改用 --init-author-name

--init-author-name 的别名

init.author.url

  • 默认值: ""
  • 类型: "" 或网址
  • 已弃用: 请改用 --init-author-url

--init-author-url 的别名

init.license

  • 默认值: "ISC"
  • 类型: 字符串
  • 已弃用: 请改用 --init-license

--init-license 的别名

init.module

  • 默认值: "~/.npm-init.js"
  • 类型: 路径
  • 已弃用: 请改用 --init-module

--init-module 的别名

init.version

  • 默认值: "1.0.0"
  • 类型: SemVer 字符串
  • 已弃用: 请改用 --init-version

--init-version 的别名

key

  • 默认值: null
  • 类型: 空值或字符串
  • 已弃用: keycert 不再用于大多数注册表操作。 请改用注册表范围 keyfilecertfile。 例子: //other-registry.tld/:keyfile=/路径/to/key.pem //other-registry.tld/:certfile=/path/to/cert.crt

访问注册表时要传递的客户端密钥。 值应采用 PEM 格式,并用字符串 "\n" 替换换行符。 例如:

key="-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----"

它不是密钥文件的路径,尽管您可以设置注册表范围的 "keyfile" 路径,如 "//other-registry.tld/:keyfile=/path/to/key.pem"。

legacy-bundling

  • 默认值: false
  • 类型: 布尔值
  • 已弃用: 此选项已被 --install-strategy=nested 弃用

不要在 node_modules 中提升包安装,而是以与它们所依赖的方式相同的方式安装包。 这可能会导致非常深的目录结构和重复的软件包安装,因为没有重复数据删除。 设置 --install-strategy=nested

only

  • 默认值: null
  • 类型: 空值、"prod" 或 "production"
  • 已弃用: 使用 --omit=dev 从安装中省略开发依赖项。

当设置为 prodproduction 时,这是 --omit=dev 的别名。

optional

  • 默认值: null
  • 类型: 空值或布尔值
  • 已弃用: 使用 --omit=optional 排除可选依赖项,或使用 --include=optional 包含它们。

除非另有省略,否则默认值会安装可选的 deps。

Alias for --include=optional or --omit=可选的

production

  • 默认值: null
  • 类型: 空值或布尔值
  • 已弃用: 请改用 --omit=dev

--omit=dev 的别名

shrinkwrap

  • 默认值: true
  • 类型: 布尔值
  • 已弃用: 请改用 --package-lock 设置。

--package-lock 的别名

tmp

从历史上看,临时文件的存储位置。 不再相关。

也可以看看