后端与接口
用 Hono + Vite 脚手架并部署…
当需要从零创建或排查一个带 Hono 路由、Vite 开发服务器和 Static Assets 的 Cloudflare Worker 项目时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用 Hono + Vite 脚手架并部署特定
解决思路
- 先了解项目需求以选择绑定和结构:询问应用做什么(纯 API、SPA + API、落地页)、用什么数据存储(D1 数据库、R2 文件、KV 缓存、无)、是否需要鉴权(Clerk、better-auth、无)、用自定义域名还是 workers.dev 子域;像“带数据库的 todo 应用”这样的简述即可开工。
- 用命令脚手架项目:npm create cloudflare@latest my-worker -- --type hello-world --ts --git --deploy false --framework none,然后 cd my-worker,npm install hono,npm install -D @cloudflare/vite-plugin vite。
- 从技能的 assets/ 目录复制并定制文件:wrangler.jsonc(Worker 配置)、vite.config.ts(Vite + Cloudflare 插件)、src/index.ts(带 Static Assets fallback 的 Hono 应用)、package.json(脚本与依赖)、tsconfig.json(TypeScript 配置)、public/index.html(SPA 入口)。
- 按项目需要把绑定写入 wrangler.jsonc;Wrangler 4.45+ 首次部署会自动创建资源,但始终要指定显式名称,例如 name、main、compatibility_date、assets(directory、binding、not_found_handling、run_worker_first),以及按需添加 d1_databases、r2_buckets、kv_namespaces。
- 部署与本地开发:npm run dev 在 http://localhost:8787 本地开发,wrangler deploy 生产部署。
- 导出语法必须用 export default app;不要用 export default { fetch: app.fetch },否则会报 “Cannot read properties of undefined”。
- 静态资源与 API 路由共存时,必须在 assets 中设置 run_worker_first: ["/api/*"],否则 SPA fallback 会拦截 API 路由并返回 index.html 而不是 JSON。
- Vite 配置使用 defineConfig({ plugins: [cloudflare()] })(从 vite 导入 defineConfig,从 @cloudflare/vite-plugin 导入 cloudflare);并始终在 wrangler.jsonc 中设置 main 字段,Vite 插件需要它。
- 添加定时/Cron 处理器时改用显式导出:export default { fetch: app.fetch, scheduled: async (event, env, ctx) => { /* ... */ } }。
- 遇到问题时查阅参考文件:references/common-issues.md(10 个已记录问题及来源与修复)、references/architecture.md(路由优先级、缓存、Workers RPC)、references/deployment.md(CI/CD、自动创建资源、渐进式发布)。
适用边界 · 注意事项
- 不使用 Cloudflare Workers 或不想用 Hono/Vite 技术栈的项目。
- 无法使用 npm create cloudflare、wrangler 等 Cloudflare 工具链或没有 Cloudflare 账号的环境。
- 只需要纯静态站点、不需要 Worker 运行时或绑定的场景。