NPM-配置
NPM-配置
您可能想了解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
工作方式相同。但请注意,在 npm-scripts 内部,npm 将设置自己的环境变量,Node 会优先选择那些小写版本而不是你可能设置的任何大写版本。有关详情请参阅此问题。
请注意,您需要使用下划线而不是破折号,因此--allow-same-version
会变为npm_config_allow_same_version=true
。
npmrc 文件
这四个相关文件是:
- 每个项目的配置文件(
/path/to/my/project/.npmrc
)
有关详细信息,请参阅 npmrc 。
默认配置
运行npm config ls -l
以查看npm内部的一组配置参数,如果未指定其他任何配置参数,则为默认值。
Shorthands和其他CLI Niceties
在命令行上解析以下简写:
-v
:--version
如果指定的配置参数明确解析为已知配置参数,则会将其扩展为该配置参数。例如:
npm ls --par
# same as:
npm ls --parseable
如果将多个单字符短序串在一起,并且所得到的组合明确地不是某些其他配置参数,则将其扩展为其各种组件。例如:
npm ls -gpld
# same as:
npm ls --global --parseable --long --loglevel info
每包配置设置
运行脚本(请参阅npm-scripts参考资料)时,如果存在 config 参数,则会在环境中覆盖package.json“config”键 <name>[@<version>]:<key>。例如,如果 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。
配置设置
访问
- 默认:
restricted
发布范围包时,访问级别默认为restricted
。如果您希望您的范围包可以公开查看(和可安装)设置 --access=public
。唯一有效的值access
是public
和restricted
。未范围的包的访问级别始终
为public
。
允许-同一版本
- 默认值:false
当npm version
用于将新版本设置为与当前版本相同的值时,防止抛出错误。
始终AUTH
- 默认值:false
强制 npm 在访问注册表时始终要求身份验证,即使对于GET
请求也是如此。
也
- 默认值:null
当“开发”或“发展”和运行的本地npm shrinkwrap
, npm outdated
或者npm update
,是一个别名--dev
。
审计
- 默认值:true
当 “true” 将审计报告与npm install
运行一起提交到默认注册表和为范围配置的所有注册表时。有关提交内容的详细信息,请参阅 npm-audit 的文档。
审计级别
- 默认:
"low"
使用npm audit
非零退出代码退出的最低漏洞级别。
AUTH型
- 默认:
'legacy'
使用什么身份验证策略adduser
/ login
。
滨链接
- 默认:
true
告诉npm .cmd
为包可执行文件创建符号链接(或 Windows 上的填充程序)。
设置为 false 以使其不执行此操作。这可以用来解决一些文件系统不支持符号链接的事实,即使在表面上的 Unix 系统上也是如此。
浏览器
- 默认值:OS X :
"open"
, Windows :"start"
,其他:"xdg-open"
由npm docs
命令调用以打开网站的浏览器。
CA
- 默认值:npm 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
配置。
凭证档案错误
- 默认:
null
包含一个或多个证书颁发机构签名证书的文件的路径。与ca
设置类似,但允许多个 CA,以及将CA信息存储在磁盘上的文件中。
高速缓存
- 默认值:Windows :
%AppData%\npm-cache
, Posix:~/.npm
npm 缓存目录的位置。看到npm-cache
缓存锁失效
- 默认值:60000(1分钟)
缓存文件夹锁定文件之前的 ms 数被视为过时。
缓存锁重试
- 默认值:10
重试获取缓存文件夹锁定文件锁定的次数。
缓存锁等待
- 默认值:10000(10秒)
等待缓存锁定文件过期的ms数。
缓存-MAX
- 默认值:无限
DEPRECATED
:此选项已被弃用,有利于--prefer-online
。
--cache-max=0
是别名--prefer-online
。
缓存分钟
- 默认值:10
DEPRECATED
:此选项已被弃用,有利于--prefer-offline
。
--cache-min=9999 (or bigger)
是别名--prefer-offline
。
证书
- 默认:
null
访问注册表时要传递的客户端证书。值应为 PEM 格式(Windows 称之为“Base-64编码X.509(.CER)”
),换行符由字符串“\ n”
替换。例如:
cert="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
它不是
证书文件的路径(并且没有“certfile”选项)。
CIDR
- 默认:
null
这是使用该npm token create
命令配置受限访问令牌时要使用的 CIDR 地址列表。
颜色
- 默认值:true
如果为 false,则不显示颜色。如果"always"
那么总是显示颜色。如果为 true,则仅打印tty 文件描述符的颜色代码。
也可以使用环境更改此选项:当环境变量NO_COLOR
设置为任何值时,将禁用颜色。
深度
- 默认值:无限
深度为递归目录时去npm ls
, npm cache ls
和npm outdated
。
因为npm outdated
,设置Infinity
将被视为,0
因为它提供了更多有用的信息。要显示所有包和依赖项的过期状态,请使用大整数值,例如,npm outdated --depth 9999
描述
- 默认值:true
在中显示说明 npm search
开发
- 默认值:false
dev-dependencies
与包一起安装。
干运行
- 默认值:false
表示您不希望 npm 进行任何更改,并且它只应报告它将执行的操作。这可以被传递到任何修改本地安装,如命令,install
,update
, dedupe
,uninstall
。这是不是目前一些网络相关的命令,如兑现dist-tags
,owner
等等。
编辑
- 默认值:
EDITOR
环境变量(如果已设置),或"vi"
位于 Posix 上或"notepad"
Windows 上。
要运行的命令npm edit
或npm config edit
。
发动机严格
- 默认值:false
如果设置为 true,那么 npm 将顽固地拒绝安装(甚至考虑安装)任何声称与当前 Node.js 版本不兼容的软件包。
力
- 默认值:false
使各种命令更有力。
- 生命周期脚本失败不会阻止进度。
取,重试
- 默认值:2
retry
从注册表中获取包时模块的“重试”配置。
取重试因素
- 默认值:10
retry
获取包时模块使用的“factor”
配置。
取重试,mintimeout
- 默认值:10000(10秒)
retry
获取包时模块使用的 “minTimeout” 配置。
取重试,maxtimeout
- 默认值:60000(1分钟)
retry
获取包时模块使用的“maxTimeout”配置。
混帐
- 默认:
"git"
用于 git 命令的命令。如果 git 安装在计算机上,但不在,请将PATH
其设置为 git 二进制文件的完整路径。
git 的标签版本
- 默认:
true
使用该npm version
命令时标记提交。
提交钩
- 默认:
true
使用该npm version
命令时运行git commit hooks
。
全球
- 默认值:false
在“全局”模式下运行,以便将软件包安装到 prefix
文件夹而不是当前工作目录中。有关npm-folders
行为差异的更多信息,请参阅 。
- 软件包安装在
{prefix}/lib/node_modules
文件夹中,而不是当前的工作目录。
globalconfig
- 默认值:
{prefix} / etc / npmrc
要读取全局配置选项的配置文件。
全球风格
- 默认值:false
导致 npm 将软件包安装到本地node_modules
文件夹中,其布局与全局node_modules
文件夹使用的布局相同。只显示您的直接依赖项,node_modules
并且它们所依赖的所有内容都将在其node_modules
文件夹中展平。这显然会消除一些重复数据删除。如果使用legacy-bundling
,legacy-bundling
将是首选。
组
- 默认值:当前进程的 GID
以全局模式运行包脚本时以 root 用户身份使用的组。
标题
- 默认:
"npm"
启动所有调试日志输出的字符串。
HTTPS 代理
- 默认值:null
用于传出 https 请求的代理。如果设置了HTTPS_PROXY
or https_proxy
或HTTP_PROXY
or http_proxy
环境变量,则底层request
库将遵循代理设置。
如果存在的
- 默认值:false
如果为 true,则在run-script
为未在scripts
部分中定义的脚本调用时,npm 将不会退出并显示错误代码package.json
。当需要在脚本存在时可选地运行脚本并在脚本失败时失败,可以使用此选项。例如,当运行可能仅适用于通用 CI 设置中的某些构建的脚本时,这很有用。
忽略-prepublish
- 默认值:false
如果为true,则npm不会运行prepublish
脚本。
忽略的脚本
- 默认值:false
如果为true,则npm不运行package.json文件中指定的脚本。
初始化模块
- 默认值:〜/ .npm-init.js
将由npm init
命令加载的模块。有关更多信息,请参阅init-package-json模块的文档 或npm-init。
初始化的作者名
- 默认值:“”
该值npm init
应该由默认包的作者的名字使用。
INIT-作者的电子邮件
- 默认值:“”
该值npm init
应该是默认对于包的作者的电子邮件使用。
INIT-作者-URL
- 默认值:“”
该值npm init
应该由默认包作者的主页使用。
初始化许可证
- 默认值:“ISC”
该值npm init
应为默认包许可使用。
INIT版本
- 默认值:“1.0.0”
该值npm init
应该默认软件包版本号使用,如果在的package.json
尚未设置。
JSON
- 默认值:false
是否输出 JSON 数据,而不是正常输出。
此功能目前是实验性的,许多命令的输出数据结构尚未在 JSON 中实现,或者可能会发生变化。只有输出npm ls --json
和npm search --json
当前有效。
键
- 默认:
null
访问注册表时要传递的客户端密钥。值应采用PEM格式,换行符由字符串“\ n”
替换。例如:
key="-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----"
它不是
密钥文件的路径(并且没有“密钥文件”选项)。
传统的捆绑
- 默认值:false
导致 npm 安装软件包,使得1.4之前的 npm 版本(例如节点0.8中包含的版本)可以安装软件包。这消除了所有自动扣除。如果与global-style
此选项一起使用将是首选。
链接
- 默认值:false
如果为 true,那么如果有合适的全局安装包,则本地安装将链接。
请注意,这意味着本地安装可以导致事物同时安装到全局空间中。只有在满足以下两个条件之一时才会完成链接:
- 该软件包尚未全局安装,或者
本地地址
- 默认值:未定义
连接到 npm 注册表时要使用的本地接口的 IP 地址。在0.12之前的节点版本中必须是 IPv4 。
日志等级
- 默认值:“通知”
要报告的日志级别。失败时,所有
日志都将写入 npm-debug.log
当前工作目录。
显示高于设置的任何日志。默认为“通知”。
LogStream
- 默认值:process.stderr
这是在运行时传递给 npmlog 模块的流 。
它不能从命令行设置,但如果您以编程方式使用 npm,则可能希望将日志发送到 stderr 以外的其他位置。
如果color
config 配置为 true,那么如果它是 TTY,则此流将接收彩色输出。
日志-MAX
- 默认值:10
要存储的最大日志文件数。
长
- 默认值:false
在npm ls
和中显示扩展信息npm search
。
maxsockets
- 默认值:50
每个源使用的最大连接数(协议/主机/端口组合)。传递给http
Agent
用来发出请求。
信息
- 默认值:“%s”
npm version
创建版本提交时使用的提交消息。
消息中的任何“%s”
都将替换为版本号。
指标的注册表
- 默认值:(
registry
默认为“https://registry.npmjs.org/”
)的值
要将 cli 指标发送到 if 的注册表send-metrics
为 true。
节点选项
- 默认值:null
通过NODE_OPTIONS
环境变量传递给 Node.js 的选项。这不会影响 npm 本身的执行方式,但会影响生命周期脚本的调用方式。
节点版本
- 默认值:process.version
检查包engines
映射时要使用的节点版本。
NOPROXY
- 默认值:null
以逗号分隔的字符串或不应使用代理的域扩展数组。
离线
- 默认值:false
强制离线模式:安装期间不会进行任何网络请求。要允许 CLI 填写缺少的缓存数据,请参阅--prefer-offline
。
onload 事件脚本
- 默认值:false
require()
npm 加载时的节点模块。对程序化使用很有用。
只要
- 默认值:null
当 “dev” 或 “development” 并且在npm install
没有任何参数的情况下运行 local 时,只安装 devDependencies(及其依赖项)。
当“开发”或“发展”和运行的本地npm ls
,npm outdated
或者 npm update
,是一个别名--dev
。
当 “prod” 或 “production” 并且在npm install
没有任何参数的情况下运行 local 时,只安装非 devDependencies(及其依赖项)。
当“刺”或“生产”和运行的本地npm ls
,npm outdated
或者 npm update
,是一个别名--production
。
可选的
- 默认值:true
尝试在optionalDependencies
对象中安装包。请注意,如果无法安装这些软件包,则不会中止整个安装过程。
OTP
- 默认值:null
这是来自双因素身份验证器的一次性密码。使用时发布或更改包权限时需要它npm access
。
包锁
- 默认值:true
如果设置为 false,则package-lock.json
在安装时忽略文件。如果是真的,这也会阻止写作
。package-lock.jsonsave
禁用包程序包锁定时,也将禁用对无关模块的自动修剪。要删除无法使用的package-locks删除多余的模块npm prune
。
此选项是别名--shrinkwrap
。
包锁只
- 默认值:false
如果设置为 true,它将仅更新package-lock.json
,而不是检查node_modules
和下载依赖项。
可解析
- 默认值:false
输出可解析的结果来自写入标准输出的命令。对于npm search
,这将是以制表符分隔的表格式。
喜欢脱机
- 默认值:false
如果为 true,则将绕过对缓存数据的过期检查,但将从服务器请求丢失的数据。要强制完全脱机模式,请使用--offline
。
此选项实际上相当于--cache-min=9999999
。
喜欢 - 在线
- 默认值:false
如果为 true,则将强制对缓存数据进行过时检查,使 CLI 即使对于新的包数据也会立即查找更新。
字首
- 默认值:请参阅 npm-folders
安装全局项的位置。如果在命令行上设置,则会强制非全局命令在指定的文件夹中运行。
preid
- 默认值:“”
“预发布标识符”,用作 semver “预发布”部分的前缀。喜欢rc
中1.2.0-rc.8
。
生产
- 默认值:false
设置为 true 以在“生产”模式下运行。
- 在
npm install
没有任何参数的情况下运行 local 时,devDependencies 不会安装在最顶层。
进展
- 默认值:true,除非设置 TRAVIS 或 CI env vars。
设置true
为时,npm 将在时间密集型操作期间显示进度条,如果process.stderr
是TTY。
设置为false
禁止进度条。
代理
- 默认值:null
用于传出 http 请求的代理。如果设置了HTTP_PROXY
或 http_proxy
环境变量,则底层request
库将遵循代理设置。
只读
- 默认值:false
这用于在使用该npm token create
命令配置受限访问令牌时将令牌标记为无法发布。
重建束
- 默认值:true
安装后重建捆绑的依赖项。
注册处
npm包注册表的基本URL。
回滚
- 默认值:true
删除失败的安装。
保存
- 默认值:true
将已安装的软件包保存为package.json
文件作为依赖项。
与npm rm
命令一起使用时,它会将其从dependencies
对象中删除。
仅在已存在package.json
文件时才有效。
保存束
- 默认值:false
如果一个软件包将在通过使用安装时被保存--save
, --save-dev
或者--save-optional
,那么也把它在 bundleDependencies
列表中。
与npm rm
命令一起使用时,它会将其从bundledDependencies
列表中删除。
保存-PROD
- 默认值:false
确保将包dependencies
特定保存。如果包中已存在devDependencies
或optionalDependencies
,但是您希望将其移动为生产 dep,则此选项非常有用。如果--save
为 true,则这也是默认行为,并且都不是--save-dev
或者 --save-optional
为true。
保存-dev的
- 默认值:false
将已安装的软件包保存到package.json
文件中devDependencies
。
与npm rm
命令一起使用时,它会将其从devDependencies
对象中删除 。
仅在已存在package.json文件时才有效。
保存,精确
- 默认值:false
使用或 将使用精确版本配置保存到package.json的依赖关系--save
,而不是使用npm的默认semver范围运算符。--save-dev--save-optional
保存 - 可选
- 默认值:false
将已安装的软件包作为optionalDependencies
保存到package.json
文件中。
与npm rm
命令一起使用时,它会将其从devDependencies
对象中删除 。
仅在已存在package.json文件时才有效。
保存前缀
- 默认值:'^'
配置如何通过--save
或--save-dev
获取前缀来安装到package.json文件的软件包版本 。
例如,如果软件包具有版本1.2.3
,则默认情况下,其版本设置为^1.2.3
允许对该软件包进行小幅升级,但在 npm config set save-prefix='~'
将其设置为~1.2.3
仅允许修补程序升级之后。
范围
- 默认值:当前项目的范围(如果有)或“”
将操作与作用域注册表的作用域相关联。在第一次登录到私有注册表时很有用:npm login
--scope=@organization
--registry=registry.organization.com
这将导致@organization
映射到注册表以便将来安装根据模式指定的包@organization/package
。
脚本shell
- 默认:
null
用于脚本的shell使用该npm run
命令运行。
脚本 - 前置节点路径
- 默认值:“仅警告”
如果设置为true
,则在运行脚本时将当前node
可执行文件所在的目录添加到PATH
环境变量中,即使这意味着npm
将调用与运行脚本不同的node
可执行文件。
如果设置为false
,则永远不要修改PATH
。
如果设置为"warn-only"
,则永远不要修改,PATH
但如果npm
认为您可能想要运行它,则打印警告true
,例如因为不是那个被调用的node
可执行文件。PATHnpm
如果设置为auto
,则仅将该目录添加到PATH
环境变量中(如果调用的node
可执行文件npm
和首先在其PATH
上找到的可执行文件不同)。
searchexclude
- 默认值:“”
以空格分隔的选项限制搜索结果。
searchopts
- 默认值:“”
始终传递给搜索的空格分隔选项。
searchlimit
- 默认值:20
要将搜索结果限制为的项目数。根本不适用于遗留搜索。
searchstaleness
- 默认值:900(15分钟)
如果使用旧版搜索端点,则在另一个注册表请求之前的缓存时间(以秒为单位)。
发送度量
- 默认值:false
如果为 true,则将成功/失败指标报告给存储在其中的注册表 metrics-registry
。这些请求包含 npm CLI 的成功和失败运行次数以及收集这些计数的时间段。这些请求中不包含任何识别信息。
shell
- 默认值:SHELL 环境变量,或 Posix 上的 “bash” 或 Windows 上的 “cmd”
要为npm explore
命令运行的 shell 。
收缩包装
- 默认值:true
如果设置为 false,则npm-shrinkwrap.json
在安装时忽略文件。如果是真的,这也会阻止写入 。npm-shrinkwrap.jsonsave
此选项是别名--package-lock
。
登录混帐提交
- 默认值:false
如果设置为 true,则该npm version
命令将使用-S
添加签名提交新包版本。
请注意,git 要求您在 git configs 中设置 GPG 密钥才能使其正常工作。
登录git的标签
- 默认值:false
如果设置为 true,则该npm version
命令将使用-s
以添加签名来标记版本。
请注意,git 要求您在 git configs 中设置 GPG 密钥才能使其正常工作。
SSO 轮询频率
- 默认值:500
与启用SSO的auth-type
s一起使用时,配置在用户完成身份验证时应如何定期轮询注册表。
SSO型
- 默认值:'oauth'
如果--auth-type=sso
,要使用的 SSO 类型。
严格的SSL
- 默认值:true
是否通过 https 向注册表发出请求时进行SSL密钥验证。
另请参阅ca
配置。
标签
- 默认值:最新
如果您要求 npm 安装软件包并且不告诉它特定的版本,那么它将安装指定的标签。
如果没有给出显式标记,还会添加到由命令指定的包@版本的标记。npm tag
标签版本前缀
- 默认:
"v"
如果设置,则在使用时执行版本增量时更改标记新版本时使用的前缀 npm-version
。要完全删除前缀,请将其设置为空字符串:""
。
因为其他工具可能依赖于 npm 版本标签的惯例 v1.0.0
,所以只有在绝对必要时才使用此属性。特别是,在覆盖公共包的此设置时要小心。
定时
- 默认:
false
如果为 true,则在缓存中写入npm-debug日志_logs和计时信息 _timing.json。_timing.json是一个换行符分隔的JSON对象列表。您可以使用此 json 命令行快速查看它 : json -g < ~/.npm/_timing.json。
TMP
- 默认值:TMPDIR 环境变量,或“/ tmp”
存储临时文件和文件夹的位置。成功时会删除所有临时文件,但出于法医目的而失败则会遗留。
统一
- 默认值:Windows 上为 false,在具有 unicode 语言环境的 mac / unix 系统上为true
设置为true时,npm在树输出中使用unicode字符。如果为false,则使用ascii字符绘制树。
不安全 perm
- 默认值:如果以 root 身份运行则为 false,否则为 true
设置为 true 以在运行程序包脚本时禁止 UID / GID 切换。如果显式设置为 false,则以非root 用户身份安装将失败。
更新通知
- 默认值:true
设置为false以在使用旧版本的npm而不是最新版本时禁止更新通知。
用法
- 默认值:false
设置为显示短使用量输出(如-H输出)而不是完成帮助npm-help
。
用户
- 默认值:“nobody”
以 root 身份运行程序包脚本时设置的UID。
UserConfig
- 默认值:〜/ .npmrc
用户级配置设置的位置。
umask
- 默认值:022
在文件和文件夹上设置文件创建模式时使用的 “umask” 值。
文件夹和可执行文件被赋予一个0777
屏蔽该值的模式。其他文件被赋予一个0666
屏蔽此值的模式。因此,缺省值是0755
和0644
分别。
用户代理
- 默认值:
node / {process.version} {process.platform} {process.arch}
将User-Agent设置为请求标头
版本
- 默认值:false
如果为 true,则输出 npm 版本并成功退出。
仅在命令行中明确指定时才相关。
版本
- 默认值:false
如果为 true,则输出 npm 版本以及节点的process.versions
映射,然后成功退出。
仅在命令行中明确指定时才相关。
观众
- 默认值:Posix 上的 “man”,Windows 上的 “browser”
用于查看帮助内容的程序。
设置为"browser"
在默认 Web 浏览器中查看 html 帮助内容。