npm-config More than you probably want to know about npm configuration

Description

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

Command Line Flags

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

示例:-- --flag1 --flag2将两个配置参数都设置为true ,而--flag1 --flag2 bar会将flag1设置为true ,而flag2bar . 最后,-- --flag1 --flag2 -- bar将两个配置参数都设置为true ,并且bar被用作命令参数.

Environment Variables

npm_config_开头的任何环境变量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 Files

四个相关文件是:

有关更多详细信息,请参见npmrc .

Default Configs

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

Shorthands and Other CLI Niceties

在命令行上解析了以下速记:

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

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

如果将多个单字符速记符串在一起,并且所得到的组合明确地不是某个其他配置参数,则将其扩展到其各个组成部分. 例如:

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

Per-Package Config Settings

运行脚本(请参阅scripts )时,如果配置参数<name>[@<version>]:<key>则package.json" config"键在环境中将被覆盖. 例如,如果package.json具有以下内容:

{ "name" : "foo"
, "config" : { "port" : "8080" }
, "scripts" : { "start" : "node server.js" } }

而server.js是这样的:

http.createServer(...).listen(process.env.npm_package_config_port)

那么用户可以通过以下方式更改行为:

npm config set foo:port 80

有关更多信息,请参见package.json .

Config Settings

access

发布作用域包时,访问级别默认为restricted . 如果希望您的作用域包可公开查看(和安装),请设置--access=public . 唯一有效的access值是publicrestricted . 无范围的程序包始终具有public的访问级别.

allow-same-version

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

always-auth

强制npm在访问注册表时始终要求身份验证,即使是GET请求也是如此.

also

当" dev"或" development"并运行本地npm shrinkwrapnpm outdatednpm update--dev的别名.

audit

如果为" true",则将审计报告npm install一起运行到默认注册表以及为范围配置的所有注册表. 有关提交内容的详细信息,请参阅npm audit的文档.

audit-level

npm audit使用非零退出代码退出的最低漏洞级别.

auth-type

adduser / login一起使用的身份验证策略是什么?

before

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

如果请求的版本是dist-tag ,并且给定标签未通过--before过滤器,则将使用小于或等于该标签的最新版本. 例如,即使latest2.0[email protected]可能也会安装[email protected] .

告诉npm为程序包可执行文件创建符号链接(在Windows上为.cmd填充).

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

browser

npm docs命令调用的浏览器打开网站.

ca

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

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

设置为null仅允许"已知"注册商,或者设置为特定的CA证书仅信任该特定的签名机构.

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

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

另请参阅strict-ssl配置.

cafile

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

cache

npm的缓存目录的位置. 查看npm cache

cache-lock-stale

高速缓存文件夹锁定文件被认为是过时之前的毫秒数.

cache-lock-retries

重试获取对缓存文件夹锁定文件的锁定的次数.

cache-lock-wait

等待缓存锁定文件到期的毫秒数.

cache-max

弃用 :此选项已赞成不赞成--prefer-online .

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

cache-min

弃用 :此选项已弃用,取而代之的--prefer-offline .

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

cert

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

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

不是证书文件的路径(并且没有" certfile"选项).

cidr

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

color

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

也可以使用环境更改此选项:当环境变量NO_COLOR设置为任何值时,颜色将被禁用.

depth

npm lsnpm cache lsnpm outdated的深度.

对于npm outdated ,将Infinity的设置视为0因为这样可以提供更多有用的信息. 要显示所有软件包和依赖项的过时状态,请使用较大的整数值,例如npm outdated --depth 9999

description

npm search显示说明

dev

与软件包一起安装dev-dependencies .

dry-run

表示您不希望npm进行任何更改,并且只应报告将要执行的操作. 可以将其传递到任何修改本地安装的命令中,例如installupdatededupeuninstall . 某些与网络相关的命令(例如dist-tagsowner等)目前不支持此功能.

editor

npm editnpm config edit运行的命令.

engine-strict

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

force

使各种命令更加强大.

format-package-lock

package-lock.jsonnpm-shrinkwrap.json package-lock.json格式化为可读文件.

fetch-retries

retry模块的"重试"配置,用于在从注册表中获取软件包时使用.

fetch-retry-factor

retry模块在获取软件包时使用的" factor"配置.

fetch-retry-mintimeout

retry模块在获取软件包时使用的" minTimeout"配置.

fetch-retry-maxtimeout

retry模块在获取软件包时使用的" maxTimeout"配置.

fund

如果为" true",则在每个npm install结束时显示该消息,并确认寻找资金的依赖项的数量. 有关详细信息,请参见npm fund .

git

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

git-tag-version

使用npm version命令时标记提交.

commit-hooks

使用npm version命令时,请运行git commit hooks.

global

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

globalconfig

读取全局配置选项的配置文件.

global-style

使npm以与全局node_modules文件夹相同的布局将软件包安装到本地node_modules文件夹中. 只有直接依赖项将显示在node_modules而它们依赖的所有内容都将在其node_modules文件夹中展平. 显然,这将消除一些重复数据删除. 如果与legacy-bundling ,将首选legacy-bundling .

group

以root用户在全局模式下运行程序包脚本时要使用的组.

heading

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

https-proxy

用于传出https请求的代理. 如果设置了HTTPS_PROXYhttps_proxyHTTP_PROXYhttp_proxy环境变量,则基础request库将接受代理设置.

if-present

如果为true,则为package.jsonscripts部分中未定义的scripts调用run-script时,npm不会以错误代码退出. 如果希望在存在脚本时有选择地运行该脚本,而在脚本失败时失败,则可以使用此选项. 例如,这在运行仅适用于其他通用CI设置中某些构建的脚本时很有用.

ignore-prepublish

如果为true,npm将不运行prepublish脚本.

ignore-scripts

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

init-module

将由npm init命令加载的模块. 有关更多信息,请参见init-package-json模块的文档或npm init .

init-author-name

默认情况下, npm init值应使用软件包作者的姓名.

init-author-email

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

init-author-url

默认情况下, npm init值应用于软件包作者的主页.

init-license

默认情况下,软件包许可证应使用值npm init .

init-version

如果尚未在package.json中设置,则默认情况下npm init应当使用该值作为软件包版本号.

json

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

此功能目前处于试验阶段,许多命令的输出数据结构尚未在JSON中实现,或者可能会发生变化. 当前仅npm ls --jsonnpm search --json的输出有效.

key

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

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

不是密钥文件的路径(并且没有" keyfile"选项).

legacy-bundling

使npm安装软件包,以使1.4之前的npm版本(例如,节点0.8附带的版本)可以安装软件包. 这消除了所有自动重复数据删除. 如果与global-style一起使用,则首选此选项.

如果为true,那么如果有合适的全局安装软件包,则本地安装将链接.

请注意,这意味着本地安装会导致事物同时安装到全局空间中. 仅当满足以下两个条件之一时,才完成链接:

local-address

与npm注册表建立连接时要使用的本地接口的IP地址. 在0.12之前的Node版本中必须为IPv4.

loglevel

要报告的日志级别. 失败时, 所有日志都将写入当前工作目录中的npm-debug.log中.

将显示任何级别高于设置的日志. 默认值为" notice".

logstream

这是在运行时传递到npmlog模块的流.

不能从命令行设置它,但是如果您以编程方式使用npm,则可能希望将日志发送到stderr以外的其他地方.

如果color config设置为true,则此流在为TTY时将接收彩色输出.

logs-max

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

long

npm lsnpm search显示扩展信息.

maxsockets

每个来源使用的最大连接数(协议/主机/端口组合). 传递给用于发出请求的http Agent .

message

创建版本提交时, npm version使用的提交消息.

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

metrics-registry

如果send-metrics为true,则要向其发送cli指标的注册表.

node-options

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

node-version

检查程序包的engines映射时要使用的节点版本.

noproxy

不应使用代理的逗号分隔的字符串或域扩展数组.

offline

强制脱机模式:在安装过程中不会执行任何网络请求. 要允许CLI填写丢失的缓存数据,请参阅--prefer-offline .

onload-script

npm加载时require()节点模块. 对于编程用途很有用.

only

当" dev"或" development"并在没有任何参数的情况下运行本地npm install ,仅npm install devDependencies(及其依赖).

当" dev"或" development"并运行本地npm lsnpm outdatednpm update--dev的别名.

当"生产"或"生产"并且运行本地npm install不带任何参数时,仅npm install非devDependencies(及其依赖).

当" prod"或" production"并运行本地npm lsnpm outdatednpm update--production的别名.

optional

尝试将软件包安装在optionalDependencies对象中. 请注意,如果这些软件包无法安装,则不会终止整个安装过程.

otp

这是来自两因素身份验证器的一次性密码. 使用npm access发布或更改软件包权限时需要npm access .

package-lock

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

禁用软件包软件包锁时,还将禁用无关模块的自动修剪. 要删除禁用了包锁的无关模块,请使用npm prune .

此选项是--shrinkwrap的别名.

package-lock-only

如果设置为true,它将仅更新package-lock.json ,而不检查node_modules和下载依赖项.

parseable

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

prefer-offline

如果为true,将绕过对缓存数据的陈旧性检查,但是将从服务器请求丢失的数据. 要强制使用完全脱机模式,请使用--offline .

此选项实际上等效于--cache-min=9999999 .

prefer-online

如果为true,则将强制对缓存的数据进行陈旧性检查,使CLI甚至可以立即检查更新以获取新的软件包数据.

prefix

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

preid

" prerelease标识符"用作semver的" prerelease"部分的前缀. 就像1.2.0-rc.8rc一样.

production

设置为true可在"生产"模式下运行.

  1. 在不带任何参数的情况下运行本地npm install时,最高级别不会安装devDependencies.
  2. 为生命周期脚本设置NODE_ENV =" production".

progress

设置为true时,如果process.stderr是TTY,则npm将在耗时的操作期间显示进度条.

设置为false可取消进度条.

proxy

用于传出http请求的代理. 如果设置了HTTP_PROXYhttp_proxy环境变量,则基础request库将接受代理设置.

read-only

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

rebuild-bundle

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

registry

npm软件包注册表的基本URL.

rollback

删除失败的安装.

save

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

npm rm命令一起使用时,会将其从dependencies对象中删除.

仅当已经存在package.json文件时才有效.

save-bundle

如果要在安装时通过使用--save ,-- --save-dev--save-optional来保存软件包,则还将其放入bundleDependencies列表中.

npm rm命令一起使用时,会将其从bundledDependencies列表中删除.

save-prod

确保将软件包专门保存到dependencies . 如果一个软件包已经存在于devDependenciesoptionalDependencies ,但是您希望将其移动为生产部门,则这很有用. 如果--save为true,并且--save-dev--save-optional不为true,这也是默认行为.

save-dev

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

npm rm命令一起使用时,会将其从devDependencies对象中删除.

仅当已经存在package.json文件时才有效.

save-exact

使用--save ,-- --save-dev--save-optional保存到package.json的依赖项将配置为确切版本,而不是使用npm的默认semver range运算符.

save-optional

将已安装的程序包另存为package.json文件,作为optionalDependencies.

When used with the npm rm command, it removes it from the devDependencies object.

仅当已经存在package.json文件时才有效.

save-prefix

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

例如,如果软件包的版本为1.2.3 ,则默认情况下,其版本设置为^1.2.3 ,这允许对该软件包进行较小的升级,但是在npm config set save-prefix='~' ,它将被设置为~1.2.3仅允许补丁程序升级.

scope

将操作与作用域注册表的作用域相关联. 首次npm login [email protected] --registry=registry.organization.com私有注册表时很有用: npm login [email protected] --registry=registry.organization.com ,这将导致@organization映射到注册表,以供将来根据模式指定的软件包安装@organization/package .

script-shell

用于脚本的shell通过npm run命令npm run .

scripts-prepend-node-path

如果设置为true ,则在运行脚本时将当前node可执行文件所在的目录添加到PATH环境变量中,即使这意味着npm将调用与其正在运行的node可执行文件不同的node可执行文件.

如果设置为false ,则永远不要用它修改PATH .

如果设置为"warn-only" ,但不会改变PATH ,但如果打印警告npm认为你可能要与运行它true ,例如,由于node的可执行文件PATH是不是一个npm与调用.

如果设置为auto ,则仅当调用npmnode可执行文件与在PATH上首先找到的可执行文件不同时,才将该目录添加到PATH环境变量中.

searchexclude

以空格分隔的选项限制了搜索结果.

searchopts

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

searchlimit

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

searchstaleness

如果使用旧版搜索终结点,则在另一个注册表请求发出之前,缓存的生存时间(以秒为单位).

send-metrics

如果为true,则成功/失败指标将报告给存储在metrics-registry . 这些请求包含npm CLI运行成功和失败的次数,以及收集这些计数的时间段. 这些请求中不包含识别信息.

shell

要为npm explore命令运行的shell.

shrinkwrap

如果设置为false,则在安装时忽略npm-shrinkwrap.json文件. 如果save为true,这也将阻止编写 npm-shrinkwrap.json .

此选项是--package-lock的别名.

sign-git-commit

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

请注意,git要求您在git配置中设置GPG密钥,以使其正常工作.

sign-git-tag

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

请注意,git要求您在git配置中设置GPG密钥,以使其正常工作.

sso-poll-frequency

与启用SSO的auth-type ,配置在用户完成身份验证时应如何定期轮询注册表.

sso-type

如果--auth-type=sso ,则使用的SSO类型的类型.

strict-ssl

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

另请参见ca config.

tag

如果您要求npm安装软件包但不告诉它特定版本,则它将安装指定的标签.

如果没有给出显式标签,也添加到npm tag命令指定的[受电子邮件保护]npm tag .

tag-version-prefix

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

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

timing

如果为true,则将npm-debug日志写入_logs并将计时信息写入_timing.json ,两者均在您的缓存中. _timing.json是用换行符分隔的JSON对象列表. 您可以使用以下json命令行快速查看它: json -g < ~/.npm/_timing.json .

tmp

在哪里存储临时文件和文件夹. 成功删除所有临时文件,但出于鉴证目的将其删除.

unicode

设置为true时,npm在树输出中使用unicode字符. 如果为false,则使用ascii字符绘制树.

unsafe-perm

设置为true以在运行程序包脚本时禁止UID / GID切换. 如果显式设置为false,则以非root用户身份安装将失败.

update-notifier

设置为false可在使用比最新版本更旧的npm时禁止更新通知.

usage

设置为在执行npm help时显示短用法输出(如-H输出),而不是完整的npm help .

user

以root用户身份运行软件包脚本时要设置的UID.

userconfig

用户级配置设置的位置.

umask

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

文件夹和可执行文件的模式被屏蔽为0777 . 其他文件的模式被屏蔽为0666 . 因此,默认值分别为07550644 .

user-agent

将User-Agent设置为请求标头

version

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

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

versions

如果为true,则输出npm版本以及节点的process.versions映射,然后成功退出.

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

viewer

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

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

See also


by  ICOPY.SITE