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将起作用. 但是,请注意,在npm-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

运行脚本(请参阅npm-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

Indicates that you don’t want npm to make any changes and that it should only report what it would have done. This can be passed into any of the commands that modify your local installation, eg, install, update, dedupe, uninstall. This is NOT currently honored by some network related commands, eg dist-tags, owner, etc.

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"配置.

git

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

git-tag-version

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

commit-hooks

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

global

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

globalconfig

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

global-style

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

group

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

heading

The string that starts all the debugging log output.

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

This is the stream that is passed to the npmlog module at run time.

不能从命令行设置它,但是如果您以编程方式使用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范围运算符.

save-optional

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

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

仅在已经存在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" ,则如果npm认为您可能希望使用true运行它,则永远不要修改PATH但会显示警告,例如,因为PATH可执行node不是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