16-npm 配置文件 npmrc

官网:https://docs.npmjs.com/cli/v8/configuring-npm/npmrc

简述 .npmrc

.npmrc 可以理解成 npm running cnfiguration ,即 npm 运行时配置文件。

.npmrc 全局和项目文件

在设置 .npmrc 之前,我们需要知道,在电脑上,不止存在一个 .npmrc 文件,而是有多个。在我们安装包的时候,npm 按照如下顺序读取这些配置文件:

  1. 项目配置文件:你可以在项目的根目录下创建一个 .npmrc 文件,只用于管理这个项目的 npm 安装。
  2. 用户配置文件:在你使用一个账号登陆的电脑的时候,可以为当前用户创建一个 .npmrc 文件,之后用该用户登录电脑,就可以使用该配置文件。可以通过 npm config get userconfig 来获取该文件的位置。
  3. 全局配置文件:一台电脑可能有多个用户,在这些用户之上,你可以设置一个公共的 .npmrc 文件,供所有用户使用。该文件的路径为:$PREFIX/etc/npmrc,使用 npm config get prefix 获取 $PREFIX。如果你不曾配置过全局文件,该文件不存在。
  4. 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://registry.npmjs.org/

# 作用域包 是一种有层次结构的 npm 软件包命名规范,通常用于将相关的模块组织在一起。如果我们希望将所有作用域包的下载路径指定到一个统一的目录,可以配置@scope:registry:
# 以@testNpmRc开头的包从registry=https://npm.xx.com这里下载,其余全去淘宝镜像下载
@testNpmRc:registry = https://npm.xx.com


# strict-ssl:控制是否严格验证SSL证书,对于内部网络或不安全的环境可以将其禁用,但不建议在生产环境中使用。
strict-ssl=false


# proxy:设置代理服务器,用于加速包的下载。这对于在受限网络环境下工作的开发者特别有用。
proxy=http://proxy.example.com/
# https-proxy:与proxy类似,但用于HTTPS请求的代理。
https-proxy=https://proxy.example.com/


# 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`文件中,这将允许你在不需要用户名和密码的情况下访问私有仓库。
//registry.example.com/:_authToken=your-auth-token


# 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

16-npm 配置文件 npmrc
https://flepeng.github.io/021-frontend-nodejs-13-包管理-01-nodejs-npm-16-npm-配置文件-npmrc/
作者
Lepeng
发布于
2021年8月4日
许可协议