使用Cloudflare部署Hexo个人博客
1. 使用 Cloudflare 托管域名

2. 使用 Pages
新版没有 pages 选项

先使用工具 在 cloudflare 创建一个 pages
Wrangler CLI
你本地 hexo g 完,public/ 就是现成的静态文件,不用连 Git,CLI 一条命令推上去。
# 1. 装 wrangler(Node 16+) |
然后控制台里把项目建起来
- Workers & Pages → 创建 → Pages → Connect to Git
- 授权 GitHub,选你博客源码仓库(比如
zhangzhicai.github.io那个,或者单独一个blog-src仓) - Framework preset 下拉里 没有 Hexo,直接选 None / 无
- 填三项关键配置:
| 项 | 填什么 | 说明 |
|---|---|---|
| Build command | hexo generate |
或 npx hexo generate 更稳 |
| Build output | public |
Hexo 默认输出目录 |
| Root directory | / |
源码在根目录就默认 |
注: Build command 第一次先使用 npm i -g pnpm && pnpm install 安装依赖
- Environment variables 加一条(可选但建议):
NODE_VERSION=20(或 18,Hexo 3.x/4.x 都能跑,LTS 稳)NODE_ENV=production
- 保存并部署,第一次会跑一遍,成功就给
xxx.pages.dev域名。
源码仓库要满足的条件
CF Pages 拿到源码后会做:npm ci → hexo generate → 把 public/ 挂 CDN。所以仓库里:
- ✅
package.json+package-lock.json必须提交(CF 靠这个装依赖) - ✅
.gitignore里node_modules/正常忽略就行,不要 ignorepackage-lock.json - ✅ Hexo 核心包要在
package.json的dependencies里(不是devDependencies也没事,CF build 环境全装):
其中:pnpm 使用 pnpm-lock.yaml, npm 使用 package-lock.json
CF Pages 工作流
git add . && git commit -m "new post" && git push |
核心区别
| 特性 | npm install |
npm ci |
|---|---|---|
| 用途 | 日常开发、添加/更新依赖 | CI/CD、自动化部署、确保环境一致 |
| 依赖来源 | 读取 package.json 版本范围,可能更新 package-lock.json |
严格读取 package-lock.json,版本锁死 |
| node_modules | 增量更新,已有包不重装 | 先删后装,保证纯净 |
| 速度 | 慢(需解析版本、计算树) | 快(直接按 lock 文件布局) |
| 失败条件 | package-lock.json 缺失或与 package.json 不一致时,自动补全或更新 |
直接报错退出,保证环境一致 |
| 副作用 | 可能修改 package-lock.json |
绝不修改 任何文件 |
自定义域名
部署成功之后会有一个默认域名,也可以自定义域名,自定义的域名必须托管在 CF 里面

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 拾遗录!
评论
TwikooGiscus




