.npmrc 的作用
.npmrc,可以理解成 npm running configuration,即 npm 运行时配置文件。我们知道,npm最大的作用就是帮助开发者安装需要的依赖包,但是要从哪里下载?下载哪一个版本的包,把包下载到电脑的哪个路径下?
这些都可以在 .npmrc 中进行配置。
在设置 .npmrc 之前,我们需要知道:在你的电脑上,不止存在一个 .npmrc 文件,而是有多个。在我们安装包的时候,npm 按照如下顺序读取这些配置文件:
- 项目配置文件:你可以在项目的根目录下创建一个.npmrc文件,只用于管理这个项目的npm安装。
- 用户配置文件:在你使用一个账号登陆的电脑的时候,可以为当前用户创建一个.npmrc文件,之后用该用户登录电脑,就可以使用该配置文件。可以通过 npm config get userconfig 来获取该文件的位置。
- 全局配置文件: 一台电脑可能有多个用户,在这些用户之上,你可以设置一个公共的.npmrc文件,供所有用户使用。该文件的路径为:$PREFIX/etc/npmrc,使用 npm config get prefix 获取$PREFIX。如果你不曾配置过全局文件,该文件不存在。
- npm内嵌配置文件:最后还有npm内置配置文件,基本上用不到,不用过度关注。
如何设置 .npmrc
1. 设置项目配置文件
在项目的根目录下新建 .npmrc 文件,在里面以 key=value 的格式进行配置。比如要把npm的源配置为淘宝源,可以参考一下代码:
registry=https://registry.npm.taobao.org
如果你想删除一些配置,可以直接把对应的代码行给删除。
2. 设置用户配置文件
可通过如下命令找到该文件的路径,然后直接仿照上述方法修改文件
npm config get userconfig
也可以通过 npm config set 命令继续设置,命令如下:
npm config set registry https://registry.npm.taobao.org
如果想要删除一些配置,可以直接编辑 .npmrc 文件,也可以使用如下命令进行删除
npm config delete registry
3. 设置全局配置文件
方法和设置用户配置文件如出一辙,只不过在使用命令行时需要加上 -g 参数
npm config set registry https://registry.npm.taobao.org -g
常用的 npm 设置命令
npm config set <key> <value> [-g|--global] //给配置参数key设置值为value;
npm config get <key> //获取配置参数key的值;
npm config delete <key> //删除置参数key及其值;
npm config list [-l] //显示npm的所有配置参数的信息;
npm config edit //编辑配置文件
npm get <key> //获取配置参数key的值;
npm set <key> <value> [-g|--global] //给配置参数key设置值为value;
.npmrc
文件可以配置的常见选项
- registry:指定npm的包管理仓库地址。可以用于切换不同的包管理源,例如,从npm官方源切换到淘宝镜像源,以提高包的下载速度。
registry=https://registry.npmjs.org/
- 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)。
save-exact=true
- strict-ssl:控制是否严格验证SSL证书,对于内部网络或不安全的环境可以将其禁用,但不建议在生产环境中使用。
strict-ssl=false
- ignore-scripts:禁用包安装过程中运行的脚本,有时可用于提高安全性。
ignore-scripts=true
- authToken:用于认证的令牌,允许无需用户名和密码即可访问私有npm仓库。
_authToken=your-auth-token
- userconfig:指定用户级别的配置文件路径,用于覆盖全局配置。
userconfig=/path/to/custom/user-config-file
- cache:设置npm包的缓存目录,可以加快包的查找速度和减少下载次数。
cache=/path/to/npm/cache
- production:指示npm只安装生产依赖包。在部署生产环境时,这可确保不会安装开发依赖包。
production=true
- loglevel:设置npm的日志级别,以控制输出的详细程度。
loglevel=warn
参考:.npmrc的作用