npm install 半天没动静,最后超时报错,第一反应该是网络问题。这时候改 .npmrc 换个镜像源,几分钟就能解决。它是 npm 的配置文件,一行一条 key=value,优先级从高到低:项目根目录、用户主目录、全局配置,项目里的会覆盖外面的。

最常用的:换镜像源

在项目根目录建一个 .npmrc,内容一行:

registry=https://registry.npmmirror.com

写在项目里只对这个项目生效,写在用户主目录则对本人所有项目生效。用命令改也等价:npm config set registry https://registry.npmmirror.com,改完用 npm config get registry 确认一下实际生效的地址。

公司私有源的 scope 写法

公司内部组件发在私有仓库,公共包又想走镜像,就给 scope 单独配一条:

registry=https://registry.npmmirror.com @mycompany:registry=https://npm.mycompany.com/

带 @mycompany 前缀的包走私有源,其余照旧。私有仓库需要认证的话,token 也写在这个文件里,格式一般是 //host/:_authToken=xxx。特别注意:项目根目录的 .npmrc 通常会提交进 git,token 千万别写在项目级文件里,放用户主目录那份才安全。

其他实用配置

  • cache=D:/npm-cache:指定缓存目录,C 盘吃紧时挪走
  • strict-ssl=false:内网自签证书场景临时用,别长期开着
  • proxy 和 https-proxy:走公司代理时配置

排查安装问题时,先 npm config list 看实际生效的配置,再看项目里有没有同事提交的配置文件把源覆盖了。多数看起来玄学的安装失败,都能在这一层找到原因。