深入理解 .npmrc 文件

.npmrc 的作用


.npmrc,可以理解成 npm running configuration,即 npm 运行时配置文件。我们知道,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


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的作用

  • 27
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘子味的冰淇淋~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值