官网:https://docs.npmjs.com/cli/v8/configuring-npm/npmrc
简述 .npmrc
.npmrc
可以理解成 npm running cnfiguration
,即 npm 运行时配置文件。
.npmrc
全局和项目文件
在设置 .npmrc
之前,我们需要知道,在电脑上,不止存在一个 .npmrc
文件,而是有多个。在我们安装包的时候,npm 按照如下顺序读取这些配置文件:
- 项目配置文件:你可以在项目的根目录下创建一个
.npmrc
文件,只用于管理这个项目的 npm 安装。
- 用户配置文件:在你使用一个账号登陆的电脑的时候,可以为当前用户创建一个
.npmrc
文件,之后用该用户登录电脑,就可以使用该配置文件。可以通过 npm config get userconfig
来获取该文件的位置。
- 全局配置文件:一台电脑可能有多个用户,在这些用户之上,你可以设置一个公共的
.npmrc
文件,供所有用户使用。该文件的路径为:$PREFIX/etc/npmrc
,使用 npm config get prefix
获取 $PREFIX
。如果你不曾配置过全局文件,该文件不存在。
- npm内嵌配置文件:最后还有npm内置配置文件,基本上用不到,不用过度关注。
.npmrc
文件的格式
.npmrc
文件的格式非常简单,它由一系列键值对组成,每个键值对都代表一个配置选项。键和值之间使用等号(=)分隔,键和值都是字符串,并且没有引号。以下是一个示例 .npmrc
文件的简单格式:
1 2 3
| registry=https://registry.npmjs.org/ proxy=http://proxy.example.com/ strict-ssl=true
|
在 .npmrc
文件中,可以包含任意数量的配置选项,每个选项占据一行。注释以#
字符开头:
.npmrc
文件示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| # registry:指定npm的包管理仓库地址。可以用于切换不同的包管理源,例如,从npm官方源切换到淘宝镜像源,以提高包的下载速度。 registry=https:
# 作用域包 是一种有层次结构的 npm 软件包命名规范,通常用于将相关的模块组织在一起。如果我们希望将所有作用域包的下载路径指定到一个统一的目录,可以配置@scope:registry: # 以@testNpmRc开头的包从registry=https://npm.xx.com这里下载,其余全去淘宝镜像下载 @testNpmRc:registry = https:
# strict-ssl:控制是否严格验证SSL证书,对于内部网络或不安全的环境可以将其禁用,但不建议在生产环境中使用。 strict-ssl=false
# proxy:设置代理服务器,用于加速包的下载。这对于在受限网络环境下工作的开发者特别有用。 proxy=http: # https-proxy:与proxy类似,但用于HTTPS请求的代理。 https-proxy=https:
# prefix:定义全局安装包的目录。默认情况下,全局包将安装在`/usr/local`(Linux)或`C:\Users\<username>\AppData\Roaming\npm`(Windows)下。 prefix=/path/to/global/packages
# save-exact:设置依赖包的版本是否应该精确匹配,而不是使用语义版本控制(Semver)。如果你想确保项目中的依赖包版本与`package.json`文件中的版本精确匹配,可以启用`save-exact`选项: save-exact=true
# ignore-scripts:禁用包安装过程中运行的脚本,有时可用于提高安全性。 ignore-scripts=true
# authToken:用于认证的令牌,允许无需用户名和密码即可访问私有npm仓库。 _authToken=your-auth-token
# 如果你需要访问私有npm仓库,可以将认证令牌配置到`.npmrc`文件中,这将允许你在不需要用户名和密码的情况下访问私有仓库。
# userconfig:指定用户级别的配置文件路径,用于覆盖全局配置。如果你想在用户级别上定义一些npm配置选项,可以创建一个`.npmrc`文件,并使用`userconfig`选项指定其路径 userconfig=/path/to/custom/user-config-file
# cache:设置npm包的缓存目录,可以加快包的查找速度和减少下载次数。 cache=/path/to/npm/cache
# production:指示npm只安装生产依赖包。在部署生产环境时,这可确保不会安装开发依赖包。 production=true
# 当我们使用npm install安装一个开发依赖(如测试工具或构建工具)时,默认情况下npm不会将这些依赖保存到package.json的devDependencies中。如果希望自动保存这些依赖,可以开启save-dev配置: save-dev=true
# loglevel:设置npm的日志级别,以控制输出的详细程度。 loglevel=warn
|