Cloudflare Pages 部署前端
前端基于 React + Vite,构建后为静态文件(SPA),推荐使用 Cloudflare Pages 部署。
前置条件
- Cloudflare 账号
- GitHub 仓库已推送代码
1. 创建 Pages 项目
- 登录 Cloudflare Dashboard → Workers & Pages → Create
- 选择 Pages → Connect to Git
- 选择你的 GitHub 仓库
2. 构建配置
由于项目是 monorepo 结构,需要注意配置:
| 配置项 | 值 |
|---|---|
| 构建命令 | npm ci && npm run build --workspace=console |
| 输出目录 | console/dist |
| 根目录 | /(保持默认) |
| Node.js 版本 | 22 |
设置 Node.js 版本:在 Environment variables 中添加
NODE_VERSION = 22
3. 环境变量
在 Cloudflare Pages → Settings → Environment variables 中添加前端需要的环境变量:
PUBLIC_BACK_END=https://api.yourdomain.com
PUBLIC_CONSOLE_URL=https://console.yourdomain.com
...
前端环境变量必须以
PUBLIC_开头才能在代码中访问,与后端共用同一份.env文件。
4. 自定义域名
- Pages 项目 → Custom domains → Set up a custom domain
- 输入域名,如
console.yourdomain.com - Cloudflare 会自动添加 DNS 记录并申请 SSL 证书
部署触发
- 推送代码到 GitHub 主分支 → 自动构建部署
- 推送到其他分支 → 自动创建预览部署(Preview URL)
5. SPA 路由处理(Pages 方式部署时需要)
如果使用 Pages 方式部署(非 Workers),需要在 console/public/ 目录下创建 _redirects 文件:
/* /index.html 200
如果使用 Workers 方式部署(wrangler deploy),
wrangler.jsonc中已配置not_found_handling: "single-page-application",无需此文件。
注意事项
- 构建命令中需要
npm ci安装依赖,因为 Cloudflare Pages 不会自动安装 monorepo 的依赖 - 如果构建失败,检查 Node.js 版本是否正确