【已解决】ERROR Failed to get response from https://registry.npm.taobao.org/binary-mirror-config,完整解决方案,附解决记录
一、造成报错的原因 :
ERROR Failed to get response from https://registry.npm.taobao.org/binary-mirror-config
意思是淘宝镜像源到期了
//原因:
原NPM淘宝域名证书过期提醒:npm.taobao.org和registry.npm.taobao.org旧域名于2021年官方公告域名更换事件,已于2022年05月31日零时起停止服务,域名HTTPS证书于2024年1月22日正式到期,不可再用。若有前端工程仍使用旧域名镜像源,会导致编译失败或超时,影响功能迭代上线。为避免受到严重影响,请尽快将代码或流水线中配置的镜像源修改为以下任意源:x-repo(推荐):http://x-repo.haier.net/repository/npm-public/;淘宝的新域名:https://registry.npmmirror.com/
如果你“赶时间”,可以直接看“解决方法”,跳过“解决过程记录”
二、解决过程记录
查看npm的镜像源
npm config get
; "builtin" config from C:\Program Files\nodejs\node_modules\npm\npmrc
prefix = "C:\\Users\\cpeng\\AppData\\Roaming\\npm"
; "user" config from C:\Users\cpeng\.npmrc
python = "C:\\Users\\cpeng\\AppData\\Local\\Programs\\Python\\Python37\\python.exe"
Python = "C:\\Users\\cpeng\\AppData\\Local\\Programs\\Python\\Python37\\python.exe"
registry = "https://registry.npm.taobao.org/"
sass_binary_site = "https://npm.taobao.org/mirrors/node-sass"
; node bin location = C:\Program Files\nodejs\node.exe
; cwd = D:\2 CodeTest\JJYChengScrollListening.js\VuePackage_JJYChengSL
; HOME = C:\Users\cpeng
; Run `npm config ls -l` to show all defaults.
应该是这2个出现了问题
registry = "https://registry.npm.taobao.org/"
sass_binary_site = "https://npm.taobao.org/mirrors/node-sass"
修改镜像源,修改为官方的
npm config set registry https://registry.npmjs.org
npm config set sass_binary_site https://registry.npmjs.org
查看修改结果
npm config get
; "builtin" config from C:\Program Files\nodejs\node_modules\npm\npmrc
prefix = "C:\\Users\\cpeng\\AppData\\Roaming\\npm"
; "user" config from C:\Users\cpeng\.npmrc
python = "C:\\Users\\cpeng\\AppData\\Local\\Programs\\Python\\Python37\\python.exe"
Python = "C:\\Users\\cpeng\\AppData\\Local\\Programs\\Python\\Python37\\python.exe"
registry = "https://registry.npmjs.org/"
sass_binary_site = "https://registry.npmjs.org"
; node bin location = C:\Program Files\nodejs\node.exe
; cwd = D:\2 CodeTest\JJYChengScrollListening.js\VuePackage_JJYChengSL
; HOME = C:\Users\cpeng
; Run `npm config ls -l` to show all defaults.
这么看的话,应该是没有问题了
更新npm缓存
npm cache clean --force
警告了
使用“npm cache verify”
npm cache verify
创建项目还是有问题
执行 npm set strict-ssl false
npm set strict-ssl false
这个的意思是
关闭 npm ssl 严格证书检查
npm config set strict-ssl false
命令会将 npm 的 strict-ssl
选项设置为 false
。
strict-ssl
选项是 npm 中用于控制 SSL 证书校验的选项。当 strict-ssl
设置为 true
时,npm 会对连接的服务器的 SSL 证书进行严格的校验,并要求它是由可信的认证机构颁发的。如果校验失败,npm 将无法连接到服务器并会报错。
当 strict-ssl
设置为 false
时,npm 将不会对服务器的 SSL 证书进行校验,并且即使证书是由不可信的认证机构颁发的也不会报错。这可能会导致安全风险,因为你的网络流量可能被劫持或篡改,而你并不会意识到这一点。因此,应该尽量避免使用 strict-ssl
设置为 false
。
如果你确实需要使用 strict-ssl
设置为 false
,例如你所连接的服务器使用的是自签名的 SSL 证书,应该只在短时间内使用,并在操作完成后尽快将 strict-ssl
设置回 true
。
再次创建项目就执行成功了,但是,镜像不能用的问题还是没有解决,直接绕过了SSL证书的检查
【*】可能是全局安装的原因,造成的问题
如果你也这样觉得,那么你的思路和方向,是错误的。
npm的配置文件里面我们已经做了修改
所以不可能是npm的问题
问题是出现在vue的cli上面
【*】vue的cli
你可以这样认为,你使用npm构建项目或者做其他操作的时候,它走的是你配置的npm镜像。
你使用vue脚手架,构建项目或者做其他操作的时候,它走的是脚手架配置的镜像。
这样问题就很明白了。
【*】修改vue的cli镜像
vue@cli使用了自己定义的镜像,位置在
npm全局目录下面的@vue\cli\lib\util\registries.js,
这个文件的内容为:
const registries = {
npm: 'https://registry.npmjs.org',
yarn: 'https://registry.yarnpkg.com',
taobao: 'https://registry.npm.taobao.org',
pnpm: 'https://registry.npmjs.org'
}
module.exports = registries
完整路径:
C:\Users\你的系统用户名\AppData\Roaming\npm\node_modules\@vue\cli\lib\util\registries.js
把taobao地址换成最新的,保存就不会有这个错误了
淘宝的新域名:https://registry.npmmirror.com/
修改后
const registries = {
npm: 'https://registry.npmjs.org',
yarn: 'https://registry.yarnpkg.com',
taobao: 'https://registry.npmmirror.com',
pnpm: 'https://registry.npmjs.org'
}
module.exports = registries
参考:
https://www.cnblogs.com/lybaobei/p/18044719
感谢博主分享,
【*】你也可以通过修改vue的config来解决这个问题
vue config
修改
vue config -s useTaobaoRegistry false
查看
vue config
已经改过来了
【*】创建项目-成功
vue create vuedom2
不再报错了
三、解决方法
每一个步骤都得操作
每一个步骤都得操作
每一个步骤都得操作
重要的话说三遍
3.2.1和3.2.2可以自由选择,不过,我建议只需要处理好3.2.2即可
淘宝的新域名:
https://registry.npmmirror.com/
3.1、修改npm镜像源:
修改镜像源,修改为官方的
npm config set registry https://registry.npmmirror.com/
npm config set sass_binary_site https://registry.npmmirror.com/
查看修改结果
npm config get
更新npm缓存
npm cache clean --force
警告了, 使用“npm cache verify”
npm cache verify
3.2、修改vue配置
3.2.1和3.2.2可以自由选择,不过,我建议只需要处理好3.2.2即可
3.2.1、修改vue的config
vue config
修改
vue config -s useTaobaoRegistry false
查看
vue config
已经改过来了
3.2.2、修改vue的cli的镜像registries.js
文件路径:
C:\Users\你的系统用户名\AppData\Roaming\npm\node_modules\@vue\cli\lib\util\registries.js
把taobao地址换成最新的,保存就不会有这个错误了
const registries = {
npm: 'https://registry.npmjs.org',
yarn: 'https://registry.yarnpkg.com',
taobao: 'https://registry.npmmirror.com',
pnpm: 'https://registry.npmjs.org'
}
module.exports = registries
四、你还可以通过“nrm”工具,来自由管理“npm”的镜像
nrm(npm registry manager)是npm的镜像管理工具,有时候国外的资源太慢,使用这个就可以快速地在npm源间切换。
4.1安装nrm
在命令行执行命令,npm install -g nrm,全局安装nrm。
npm install -g nrm
4.2查看当前源
nrm ls
4.3切换
nrm use taobao
nrm use 名称
4.4增加
nrm add taobao https://registry.npmmirror.com/
nrm add 名称 地址
4.5删除
nrm del 名称
4.6测试速度
nrm test 名称