在线文档教程

NPM-配置

NPM-配置

您可能想了解npm配置

描述

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

命令行标志

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

例如:--flag1 --flag2将同时设置配置参数true,而--flag1 --flag2 bar将设置flag1true,并且flag2bar。最后,--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。唯一有效的值accesspublicrestricted。未范围的包的访问级别始终public

允许-同一版本

  • 默认值:false

npm version用于将新版本设置为与当前版本相同的值时,防止抛出错误。

始终AUTH

  • 默认值:false

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

  • 默认值:null

当“开发”或“发展”和运行的本地npm shrinkwrapnpm 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 lsnpm cache lsnpm outdated

因为npm outdated,设置Infinity将被视为,0 因为它提供了更多有用的信息。要显示所有包和依赖项的过期状态,请使用大整数值,例如,npm outdated --depth 9999

描述

  • 默认值:true

在中显示说明 npm search

开发

  • 默认值:false

dev-dependencies与包一起安装。

干运行

  • 默认值:false

表示您不希望 npm 进行任何更改,并且它只应报告它将执行的操作。这可以被传递到任何修改本地安装,如命令,installupdatededupeuninstall。这是不是目前一些网络相关的命令,如兑现dist-tagsowner等等。

编辑

  • 默认值:EDITOR环境变量(如果已设置),或"vi"位于 Posix 上或"notepad"Windows 上。

要运行的命令npm editnpm 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-bundlinglegacy-bundling将是首选。

  • 默认值:当前进程的 GID

以全局模式运行包脚本时以 root 用户身份使用的组。

标题

  • 默认: "npm"

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

HTTPS 代理

  • 默认值:null

用于传出 https 请求的代理。如果设置了HTTPS_PROXYor https_proxyHTTP_PROXYor 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 --jsonnpm 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 以外的其他位置。

如果colorconfig 配置为 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 lsnpm outdated或者 npm update,是一个别名--dev

当 “prod” 或 “production” 并且在npm install没有任何参数的情况下运行 local 时,只安装非 devDependencies(及其依赖项)。

当“刺”或“生产”和运行的本地npm lsnpm 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 “预发布”部分的前缀。喜欢rc1.2.0-rc.8

生产

  • 默认值:false

设置为 true 以在“生产”模式下运行。

  • npm install没有任何参数的情况下运行 local 时,devDependencies 不会安装在最顶层。

进展

  • 默认值:true,除非设置 TRAVIS 或 CI env vars。

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

设置为false禁止进度条。

代理

  • 默认值:null

用于传出 http 请求的代理。如果设置了HTTP_PROXYhttp_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特定保存。如果包中已存在devDependenciesoptionalDependencies,但是您希望将其移动为生产 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-types一起使用时,配置在用户完成身份验证时应如何定期轮询注册表。

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屏蔽此值的模式。因此,缺省值是07550644分别。

用户代理

  • 默认值:node / {process.version} {process.platform} {process.arch}

将User-Agent设置为请求标头

版本

  • 默认值:false

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

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

版本

  • 默认值:false

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

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

观众

  • 默认值:Posix 上的 “man”,Windows 上的 “browser”

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

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