目录
npmrc
选择 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_modules
和 package.json
的同级目录)将设置特定于此项目的配置值。
请注意,这仅适用于您运行 npm 的项目根目录。在发布模块时,它不会产生任何影响。例如,您无法发布一个强制自身以全局方式或在不同位置安装的模块。
此外,在全局模式下不会读取此文件,例如在运行 npm install -g
时。
每个用户配置文件
$HOME/.npmrc
(或 userconfig
参数,如果在环境中或命令行中设置)
全局配置文件
$PREFIX/etc/npmrc
(或 globalconfig
参数,如果在上面设置):此文件是一个 ini 文件格式的 key = value
参数列表。环境变量可以像上面一样替换。
内置配置文件
path/to/npm/itself/npmrc
这是一个不可改变的“内置”配置文件,npm 在更新之间保持一致。使用与 npm 捆绑在一起的 ./configure
脚本设置其中的字段。这主要用于分发维护者以标准化和一致的方式覆盖默认配置。
与身份验证相关的配置
设置 _auth
、_authToken
、username
和 _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