背景

2021 年 12 月 20 日,jsDelivr 出现故障,导致国内几乎无法访问 jsDelivr 的 CDN,直到现在还没修复。

可以使用 Vercel 来免费反代 jsDelivr,在国内部分地区还是能够快速访问的,至少比完全无法访问好。

本篇教程以安卓手机的 Termux 为基础,其他诸如 Windows、macOS 或者 Linux 下的终端如法炮制即可。

前提

你需要有 Termux,并按照文章内容配置好环境,以及一个 Vercel 账号。

过程

切换 npm 为淘宝源

1
npm config set registry http://registry.npm.taobao.org

或者,你也可以使用 cnpm,下面的命令执行完成后,将接下来的 npm 命令替换为 cnpm 即可。

1
npm install -g cnpm --registry=https://registry.npm.taobao.org

安装 Vercel CLI

1
npm i -g vercel

登录 Vercel CLI

1
vercel login

选择登录方式时,使用箭头键选择,按回车继续。随后跳转到浏览器网页验证账号,成功后回到 Termux。

创建配置文件

1
mkdir vercel-proxy && cd vercel-proxy

vim proxy.json

1
2
3
4
5
6
{
"version": 2,
"routes": [
{"src": "/(.*)","dest": "https://example.com/$1"}
]
}

替换 example.com 为要反代的地址,这里可以是 cdn.jsdelivr.net。注意,必须带协议头(http:// 或 https://)。

部署到 Vercel

1
vercel -A proxy.json --prod

接着,按照提示,设置好部署账号,是否链接已有项目,项目名称,部署路径以及是否修改设置。

一般不需要链接已有项目,因为这会覆盖已有项目的部署。

完成

完成后,去 vercel.com 查看项目域名,你也可以解析自己的域名,此域名即反代可用的域名。打开 Hexo 博客根目录,vim _config.butterfly.yml,查找替换所有 cdn.jsdelivr.net 为反代域名,即可实现反代 hexo-theme-butterfly 的 CDN。