当我们进入一家新公司,并且公司有自己的一些代码库建设,即搭建了私有的 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
- 当项目中不同的依赖有不同的镜像源;
- 想在项目中做到闭环,不用使用者先执行
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