Files
mengya-nav/README.md
2026-06-24 22:10:28 +08:00

2.2 KiB
Raw Blame History

萌芽导航sproutnav

单一 Cloudflare Workerworker/src/index.ts 处理 /api/*,静态资源由 Wrangler [assets] 提供Vite 构建输出 frontend/dist)。

目录结构

  • worker/:导航 APIKVsites / categories、与静态资源回退SPA
  • frontend/React + Vite PWAfrontend/src/config/site.ts 可配置 VITE_API_BASE、站点文案、随机背景、VITE_FAVICON_API_BASE(默认 https://favicon.smyhub.com/api/favicon?url=
  • wrangler.tomlmain[[kv_namespaces]][vars](如 ADMIN_PASSWORD)、[assets]./frontend/dist

本地开发

# 仅前端(无同源 API 时需自行 mock 或填 VITE_API_BASE
cd frontend && npm install && npm run dev

# Worker + 资源(需先 build 前端,或由 wrangler 触发)
npm install
npm run build:frontend
npm run dev

构建产物

npm run build(根目录或 frontend/)会连续构建两份前端:

脚本 / 模式 输出目录 VITE_API_BASE 用途
默认 vite build frontend/dist 空(同源 /api Worker [assets] 线上部署
--mode desktop frontend/dist-desktop https://nav.smyhub.com 桌面壳Electron/Tauri 等)加载

单独构建:npm run build:web / npm run build:desktop(在 frontend/ 下)。

桌面版使用 HashRouterbase: './',且不注册 Service Worker。

部署

npm install
cd frontend && npm install && cd ..
npm run deploy

deploy 仅打包并上传 frontend/dist(线上版);桌面版 dist-desktop 自行交给桌面工程。

生产环境请在 Dashboard 或密文中覆盖 ADMIN_PASSWORD,勿提交真实口令。

KV 数据

沿用 wrangler.toml 中 namespace id 即可续用原有 KV 数据。

常见问题

  • 站点卡片图标:由前端根据每条站点的 url 请求 favicon 服务,不经 Worker可通过 VITE_FAVICON_API_BASE 覆盖默认基址。
  • 跨域 / 缓存:若 API 已同源但仍见旧请求,尝试硬刷新或注销 Service Worker 后清除站点数据。