npm 依赖安装配置-镜像源文件 .npmrc

164 阅读2分钟

当我们进入一家新公司,并且公司有自己的一些代码库建设,即搭建了私有的 npm 服务器时,前辈们都会告诉你,首先你要更改一下你的 npm 镜像源,执行 npm config set registry http://npm.xx.com

当项目中不同的依赖有不同的镜像源时,就需要想办法去通过一些配置来解决这个问题了,这就用到了一个配置文件 .npmrc

what - .npmrc 是什么

.nmprc ,可以理解成 npm running cnfiguration,即 npm 运行时的配置文件,用于设置 package.json 中依赖包的安装来源。

通常,我们的电脑中也有多个 .npmrc 文件,在我们安装包的时候,npm 会按照如下顺序来读取这些配置文件:

  • 项目配置文件: /project/.npmrc
  • 用户配置文件:~/.npmrc
  • 全局配置文件:$PREFIX/etc/npmrc
  • npm 内置配置文件 /path/to/npm/npmrc

where - 哪些场景需要使用 .npmrc

  1. 当项目中不同的依赖有不同的镜像源;
  2. 想在项目中做到闭环,不用使用者先执行 npm config set registry http://npm.xx.com 单独修改 npm 镜像源。

how -如何配置 .npmrc

在项目根目录创建 .npmrc 文件,根据 key=value 的格式进行配置

#默认包
registry=https://registry.npm.taobao.org/#指定包

这里需要注意的一点,我们通常看到的 package.json 里依赖包可能是 @test/ui @test/bi,在配置的时候可能会想当然的配置成如下格式:

#指定包 - 错误方式
@test/ui:registry=http://www.私服地址.com

#指定包 - 错误方式
@test/bi:registry=http://www.私服地址.com

当你信心满满的执行 npm install的时,你会发现,对应的依赖还是没有根据指定的地址去下载,会报如下错:

这应该是 npm 内部机制的问题,不能解析 @test/xxx 的这种二级包,我们配置的时候只要配置成一级就行了。

#指定包
@test:registry=http://www.私服地址.com