抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

上一篇分享了如何借助 Vercel 自建 NPM 镜像,本篇我们借助 Cloudflare 自建 NPM 镜像。需要先拥有 Cloudflare 账户,并开启 Cloudflare Workers 功能。需要的小伙伴可以按照教程尝试一下!

创建 Worker 项

先登录 Cloudflare 账户,转到 Workers 选项卡。创建一个新 Worker,输入 Worker 名称例如 npm-mirror,点击部署:

点击打开 Worker 脚本地址并复制,编辑脚本:

编写脚本

粘贴复制脚本内容:

脚本中需要包含对 NPM 镜像的代理逻辑:

1
2
3
4
5
6
7
8
9
10
11
addEventListener(
"fetch", event => {
let url = new URL(event.request.url);
url.hostname = "unpkg.com";
url.protocol = "https";
let request = new Request(url, event.request);
event.respondWith(
fetch(request)
)
}
)

设置域名

在页面中点击设置,进入触发器选项卡,点击添加自定义域输入域名,如 npm.birdteam.net 进行绑定:

补充说明

脚本中的 url.hostname 字段指定需要反代的网址,如需反代其它域名,可以自行修改。如 fastly.jsdelivr.net 代码如下:

1
2
3
4
5
6
7
8
9
10
11
addEventListener(
"fetch", event => {
let url = new URL(event.request.url);
url.hostname = "fastly.jsdelivr.net";
url.protocol = "https";
let request = new Request(url, event.request);
event.respondWith(
fetch(request)
)
}
)

gcore.jsdelivr.net 的代码如下:

1
2
3
4
5
6
7
8
9
10
11
addEventListener(
"fetch", event => {
let url = new URL(event.request.url);
url.hostname = "gcore.jsdelivr.net";
url.protocol = "https";
let request = new Request(url, event.request);
event.respondWith(
fetch(request)
)
}
)

评论