npmrc

npm 配置文件

选择 CLI 版本

描述

npm 从命令行、环境变量和 npmrc 文件获取其配置设置。

npm config 命令可用于更新和编辑用户和全局 npmrc 文件的内容。

有关可用配置选项的列表,请参见 config

文件

四个相关文件是

  • 每个项目配置文件 (/path/to/my/project/.npmrc)
  • 每个用户配置文件 (~/.npmrc)
  • 全局配置文件 ($PREFIX/etc/npmrc)
  • npm 内置配置文件 (/path/to/npm/npmrc)

所有 npm 配置文件都是一个 ini 格式的 key = value 参数列表。可以使用 ${VARIABLE_NAME} 替换环境变量。例如

prefix = ${HOME}/.npm-packages

加载每个文件,并按优先级顺序解析配置选项。例如,userconfig 文件中的设置将覆盖 globalconfig 文件中的设置。

数组值通过在键名后添加 "[]" 来指定。例如

key[] = "first value"
key[] = "second value"

评论

.npmrc 文件中的行在以 ;# 字符开头时被解释为注释。 .npmrc 文件由 npm/ini 解析,该文件指定了这种注释语法。

例如

# last modified: 01 Jan 2016
; Set a new registry for a scoped package
@myscope:registry=https://mycustomregistry.example.org

每个项目配置文件

在本地项目中工作时,项目根目录中的 .npmrc 文件(即 node_modulespackage.json 的同级目录)将设置特定于此项目的配置值。

请注意,这仅适用于您运行 npm 的项目根目录。在发布模块时,它不会产生任何影响。例如,您无法发布一个强制自身以全局方式或在不同位置安装的模块。

此外,在全局模式下不会读取此文件,例如在运行 npm install -g 时。

每个用户配置文件

$HOME/.npmrc(或 userconfig 参数,如果在环境中或命令行中设置)

全局配置文件

$PREFIX/etc/npmrc(或 globalconfig 参数,如果在上面设置):此文件是一个 ini 文件格式的 key = value 参数列表。环境变量可以像上面一样替换。

内置配置文件

path/to/npm/itself/npmrc

这是一个不可改变的“内置”配置文件,npm 在更新之间保持一致。使用与 npm 捆绑在一起的 ./configure 脚本设置其中的字段。这主要用于分发维护者以标准化和一致的方式覆盖默认配置。

设置 _auth_authTokenusername_password 必须全部作用域到特定注册表。这样可以确保 npm 永远不会将凭据发送到错误的主机。

完整列表为

  • _auth(base64 身份验证字符串)
  • _authToken(身份验证令牌)
  • 用户名
  • _密码
  • 电子邮件
  • certfile(证书文件路径)
  • keyfile(密钥文件路径)

为了对这些值进行作用域,它们必须以 URI 片段为前缀。如果凭据用于对单个主机上的注册表进行任何请求,则范围可能类似于 //registry.npmjs.org/:。如果它必须作用域到主机上的特定路径,则该路径也可以提供,例如 //my-custom-registry.org/unique/path:

; bad config
_authToken=MYTOKEN
; good config
@myorg:registry=https://somewhere-else.com/myorg
@another:registry=https://somewhere-else.com/another
//registry.npmjs.org/:_authToken=MYTOKEN
; would apply to both @myorg and @another
; //somewhere-else.com/:_authToken=MYTOKEN
; would apply only to @myorg
//somewhere-else.com/myorg/:_authToken=MYTOKEN1
; would apply only to @another
//somewhere-else.com/another/:_authToken=MYTOKEN2

另请参阅