npmrc

npm 配置文件

选择 CLI 版本:

描述

Description

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

npm gets its config settings from the command line, environment variables, and npmrc files.

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

The npm config command can be used to update and edit the contents of the user and global npmrc files.

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

For a list of available configuration options, see config.

文件

Files

四个相关文件是:

The four relevant files are:

  • per-project config file (/path/to/my/project/.npmrc)

  • per-user config file (~/.npmrc)

  • global config file ($PREFIX/etc/npmrc)

  • npm 内置配置文件 (/path/to/npm/npmrc)

    npm builtin config file (/path/to/npm/npmrc)

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

All npm config files are an ini-formatted list of key = value parameters. Environment variables can be replaced using ${VARIABLE_NAME}. For example:

prefix = ${HOME}/.npm-packages

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

Each of these files is loaded, and config options are resolved in priority order. For example, a setting in the userconfig file would override the setting in the globalconfig file.

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

Array values are specified by adding "[]" after the key name. For example:

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

注释

Comments

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

Lines in .npmrc files are interpreted as comments when they begin with a ; or # character. .npmrc files are parsed by npm/ini, which specifies this comment syntax.

例如:

For example:

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

每个项目的配置文件

Per-project config file

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

When working locally in a project, a .npmrc file in the root of the project (ie, a sibling of node_modules and package.json) will set config values specific to this project.

请注意,这仅适用于你正在运行 npm 的项目的根目录。当你的模块发布时,它不起作用。例如,你不能发布强制自身全局安装或安装在不同位置的模块。

Note that this only applies to the root of the project that you're running npm in. It has no effect when your module is published. For example, you can't publish a module that forces itself to install globally, or in a different location.

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

Additionally, this file is not read in global mode, such as when running npm install -g.

每个用户的配置文件

Per-user config file

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

$HOME/.npmrc (or the userconfig param, if set in the environment or on the command line)

全局配置文件

Global config file

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

$PREFIX/etc/npmrc (or the globalconfig param, if set above): This file is an ini-file formatted list of key = value parameters. Environment variables can be replaced as above.

内置配置文件

Built-in config file

path/to/npm/itself/npmrc

这是一个不可更改的 "builtin" 配置文件,npm 在更新时保持一致。使用 npm 附带的 ./configure 脚本在此处设置字段。这主要是为了分发维护者以标准和一致的方式覆盖默认配置。

This is an unchangeable "builtin" configuration file that npm keeps consistent across updates. Set fields in here using the ./configure script that comes with npm. This is primarily for distribution maintainers to override default configs in a standard and consistent manner.

认证相关配置

Auth related configuration

设置 _auth_authTokenusername_password 都必须限定在特定注册表范围内。这可确保 npm 永远不会将凭据发送到错误的主机。

The settings _auth, _authToken, username and _password must all be scoped to a specific registry. This ensures that npm will never send credentials to the wrong host.

完整名单是:

The full list is:

  • _auth(base64 认证字符串)

    _auth (base64 authentication string)

  • _authToken(身份验证令牌)

    _authToken (authentication token)

  • username

  • _password

  • email

  • certfile(证书文件的路径)

    certfile (path to certificate file)

  • keyfile(密钥文件的路径)

    keyfile (path to key file)

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

In order to scope these values, they must be prefixed by a URI fragment. If the credential is meant for any request to a registry on a single host, the scope may look like //registry.npmjs.org/:. If it must be scoped to a specific path on the host that path may also be provided, such as //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

也可以看看

See also

npm 中文网 - 粤ICP备13048890号