npm、yarn、pnpm 设置最新国内镜像源(附官方镜像源和最新阿里源),以及 nrm 的使用教程
阿里最近(指的是 2022 年~~哈哈)更换了淘宝镜像的域名,原域名的 SSL 证书已经过期了(2024/01/22),最近使用旧 淘宝镜像 的应该都遇到 Error: certificate has expired 了吧,遇到了可以看下这个解决方案~
npm
查询源
npm get registry
设置源
# 国内 淘宝 镜像源
npm config set registry https://registry.npmmirror.com/
# 官方镜像源
npm config set registry https://registry.npmjs.org/
pnpm
查询源
pnpm get registry
设置源
# 国内 淘宝 镜像源
pnpm config set registry https://registry.npmmirror.com/
# 官方镜像源
pnpm config set registry https://registry.npmjs.org/
yarn
查询源
yarn config get registry
设置源
# 国内 淘宝 镜像源
yarn config set registry https://registry.npmmirror.com/
# 官方镜像源
yarn config set registry https://registry.yarnpkg.com/
镜像源集合
新增 华为、清华、网易 等镜像地址
请根据当前网络选择最佳镜像。
{
"npm": "https://registry.npmjs.org/",
"yarn": "https://registry.yarnpkg.com/",
"tencent": "https://mirrors.cloud.tencent.com/npm/",
"cnpm": "https://r.cnpmjs.org/",
"taobao": "https://registry.npmmirror.com/",
"npmMirror": "https://skimdb.npmjs.com/registry/",
"ali": "https://registry.npm.alibaba-inc.com/",
"huawei": "https://mirrors.huaweicloud.com/repository/npm/",
"163": "https://mirrors.163.com/npm/",
"ustc": "https://mirrors.ustc.edu.cn/",
"tsinghua": "https://mirrors.tuna.tsinghua.edu.cn/"
}
使用 nrm 切换镜像源
安装
npm install nrm -g
# or
sudo npm install nrm -g
使用
nrm ls - 列出所有的镜像源或查看当前使用的源
nrm ls
nrm <add | del> <registry-name> [registry url] - 添加或删除镜像源
# 添加源
nrm add testRegistry https://baidu.com/
# 删除源
nrm del testRegistry
nrm use <registry-name> - 使用源
nrm use taobao
nrm test - 测试所有镜像源的速度
nrm test
总结
清除缓存
npm cache clean --force
设置后 yarn 不生效?
yarn 版本 1.22.22
yarn 并未读取当前 项目目录 或用户(~/.npmrc)目录下的 .npmrc 文件的 registry 字段,在查询 yarn v1 官网和相关 issue未发现相关描述
yarn v1.x 版本中仍会读取 .npmrc 的相关字段,但会优先使用 .yarnrc 中的值,由于 yarn config 中的 registry 字段无法删除(delete 后仍有默认值),在项目外只能使用命令更改,或修改 .yarnrc。至于未读取当前项目下的 .npmrc 中的 registry 暂未知。
nrm use 时做了什么?
可以看出
nrm 更改的是~/.npmrc 文件