配置
关于 npm 配置,你可能想知道的更多- 描述
- 速记和其他 CLI 细节
- 配置设置
- _auth
- access
- all
- allow-same-version
- audit
- audit-level
- auth-type
- before
- bin-links
- browser
- ca
- cache
- cafile
- call
- ci-name
- cidr
- color
- commit-hooks
- depth
- description
- diff
- diff-dst-prefix
- diff-ignore-all-space
- diff-name-only
- diff-no-prefix
- diff-src-prefix
- diff-text
- diff-unified
- dry-run
- editor
- engine-strict
- fetch-retries
- fetch-retry-factor
- fetch-retry-maxtimeout
- fetch-retry-mintimeout
- fetch-timeout
- force
- foreground-scripts
- format-package-lock
- fund
- git
- git-tag-version
- global
- globalconfig
- heading
- https-proxy
- if-present
- ignore-scripts
- include
- include-staged
- include-workspace-root
- init-author-email
- init-author-name
- init-author-url
- init-license
- init-module
- init-version
- install-links
- install-strategy
- json
- legacy-peer-deps
- link
- local-address
- location
- lockfile-version
- loglevel
- logs-dir
- logs-max
- long
- maxsockets
- message
- node-options
- noproxy
- offline
- omit
- omit-lockfile-registry-resolved
- otp
- pack-destination
- package
- package-lock
- package-lock-only
- parseable
- prefer-offline
- prefer-online
- prefix
- preid
- progress
- provenance
- proxy
- read-only
- rebuild-bundle
- registry
- replace-registry-host
- save
- save-bundle
- save-dev
- save-exact
- save-optional
- save-peer
- save-prefix
- save-prod
- scope
- script-shell
- searchexclude
- searchlimit
- searchopts
- searchstaleness
- shell
- sign-git-commit
- sign-git-tag
- strict-peer-deps
- strict-ssl
- tag
- tag-version-prefix
- timing
- umask
- unicode
- update-notifier
- usage
- user-agent
- userconfig
- version
- versions
- viewer
- which
- workspace
- workspaces
- workspaces-update
- yes
- also
- cache-max
- cache-min
- cert
- dev
- global-style
- init.author.email
- init.author.name
- init.author.url
- init.license
- init.module
- init.version
- key
- legacy-bundling
- only
- optional
- production
- shrinkwrap
- tmp
- 也可以看看
描述
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
。
注意: 这默认为不更改现有包的当前访问级别。 在发布期间指定值 restricted
或 public
将更改对现有包的访问权限,就像 npm access set
status
一样。
all
- 默认值: false
- 类型: 布尔值
运行 npm outdated
和 npm 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
,即使 latest
是 2.0
。
bin-links
- 默认值: 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 exec
、npx
的可选配套选项,允许指定自定义命令与已安装的包一起运行。
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 进行任何更改,并且它应该只报告它会做的事情。 这可以传递到任何修改本地安装的命令中,例如 install
、update
、dedupe
、uninstall
以及 pack
和 publish
。
注意: 其他网络相关命令不支持此功能,例如 dist-tags
、owner
等。
editor
- 默认值: The EDITOR or VISUAL environment variables, or '%SYSTEMROOT%\Windows 上的 notepad.exe' 或 Unix 系统上的 'vi'
- 类型: 字符串
为 npm edit
和 npm 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
- 类型: 布尔值
在前台进程中运行已安装包的所有构建脚本(即 preinstall
、install
和 postinstall
)脚本,与主 npm 进程共享标准输入、输出和错误。
请注意,这通常会使安装运行速度变慢,并且噪音更大,但对调试很有用。
format-package-lock
- 默认值: true
- 类型: 布尔值
将 package-lock.json
或 npm-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_PROXY
或 https_proxy
或 HTTP_PROXY
或 http_proxy
环境变量,则底层 make-fetch-happen
库将遵循代理设置。
if-present
- 默认值: false
- 类型: 布尔值
如果为 true,当为 package.json
的 scripts
部分中未定义的脚本调用 run-script
时,npm 将不会退出并返回错误代码。
当需要在脚本存在时选择性地运行脚本并在脚本失败时运行失败时,可以使用此选项。 这很有用,例如,在运行可能仅适用于其他通用 CI 设置中的某些构建的脚本时。
此值不会导出到子进程的环境中。
ignore-scripts
- 默认值: false
- 类型: 布尔值
如果为 true,npm 不会运行 package.json 文件中指定的脚本。
请注意,如果设置了 ignore-scripts
,则明确旨在运行特定脚本的命令(例如 npm start
、npm stop
、npm restart
、npm test
和 npm 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
应该默认使用的值作为包版本号。
install-links
- 默认值: 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
合约。
link
- 默认值: 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
- 类型: 布尔值
在 ls
、search
和 help-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.json
或 npm-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_PROXY
或 http_proxy
环境变量,则底层 request
库将遵循代理设置。
read-only
- 默认值: false
- 类型: 布尔值
这用于在使用 npm token create
命令配置受限访问令牌时将令牌标记为无法发布。
rebuild-bundle
- 默认值: true
- 类型: 布尔值
安装后重建捆绑的依赖项。
registry
- 默认值: "https://registry.npmjs.org/"
- 类型: URL
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
中。 如果 devDependencies
或 optionalDependencies
中已经存在一个包,但您希望将其移动为非可选的生产依赖项,这将非常有用。
如果 --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 exec
、npm run
和 npm
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_ALL
、LC_CTYPE
或LANG
环境变量所定义。 - 类型: 布尔值
当设置为 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}
- 如果设置了workspaces
或workspace
选项,则设置为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=开发而不是。
当设置为 dev
或 development
时,这是 --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
- 类型: 空值或字符串
- 已弃用:
key
和cert
不再用于大多数注册表操作。 请改用注册表范围keyfile
和certfile
。 例子: //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
- 类型: 空值或字符串
- 已弃用:
key
和cert
不再用于大多数注册表操作。 请改用注册表范围keyfile
和certfile
。 例子: //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
从安装中省略开发依赖项。
当设置为 prod
或 production
时,这是 --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
- 默认值: Node.js
os.tmpdir()
方法返回的值 https://nodejs.cn/api/os.html#os_os_tmpdir - 类型: 路径
- 已弃用: 不再使用此设置。 npm 将临时文件存储在缓存中的一个特殊位置,它们由
cacache
管理。
从历史上看,临时文件的存储位置。 不再相关。