lanyuanxiaoyao 1e3269380e fix: 审查修补前端布局重构并归档 change
- 补实现 ProtectedRoute 空壳组件(预留接口,不启用认证逻辑)
- 修复页面组件内联 style 为 CSS 类,符合样式规范
- 补充 Sidebar 菜单项激活状态测试、404 按钮可点击测试
- 回写 admin-layout spec Header 页面标题 fallback 行为
- 同步 delta specs 至主规范(admin-layout、frontend-routing、app-constants)
- 归档 refactor-frontend-layout change
2026-05-24 22:28:17 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00
2026-05-20 00:18:07 +08:00

my-app

(替换为你的项目介绍)

Bun 全栈应用模板,基于 Bun + React + TDesign 的前后端一体化开发框架。

快速开始

git clone <your-repo-url> my-project
cd my-project
bun install
bun run dev

访问 http://127.0.0.1:5173 查看应用。

使用此模板

1. 克隆模板

git clone <template-repo-url> my-project
cd my-project
rm -rf .git && git init

2. 配置应用信息

编辑 src/shared/app.ts,修改应用元信息:

export const APP = {
  name: "your-app", // 机器标识kebab-case
  title: "Your App", // 人类可读标题
  subtitle: "你的副标题", // 副标题
  description: "应用描述", // SEO meta 描述
  version: "0.1.0", // 版本号
} as const;

同时修改 package.jsonname 字段保持一致。

注意localStorage key 已从 "my-app.theme.preference" 变更为 "theme.preference"。如果从旧版本升级,用户的主题偏好设置将丢失,需重新选择。

3. 清理 OpenSpec 历史

删除模板自带的 OpenSpec 变更历史,保留框架配置:

rm -rf openspec/specs/*
rm -rf openspec/changes/*

openspec/config.yaml 需要保留,其中包含项目开发规范配置。

4. 安装依赖

bun install

5. 开始开发

bun run dev

项目管理

命令 说明
bun run dev 启动开发模式(并行启动后端 + 前端 Vite 开发服务器)
bun run dev:server 仅启动后端开发服务(--watch 热重载)
bun run dev:web 仅启动前端 Vite 开发服务器
bun run build 生产构建Vite 打包前端 → Bun compile 生成独立可执行文件)
bun test 运行全部测试
bun run lint ESLint 代码风格检查
bun run format Prettier 代码格式化
bun run typecheck TypeScript 类型检查
bun run check 完整质量检查typecheck + lint + test
bun run verify 验证构建流程check + build
bun run clean 清理构建产物和临时文件

项目结构

.
├── config.example.yaml         # 配置文件示例
├── bunfig.toml                 # Bun 配置(测试预加载等)
├── tsconfig.json               # TypeScript 配置
├── vite.config.ts              # Vite 构建配置(代码分包、代理)
├── eslint.config.js            # ESLint 统一配置
├── .prettierrc.json            # Prettier 格式化配置
├── commitlint.config.js        # Commitlint 提交规范配置
├── .lintstagedrc.json          # lint-staged 暂存区检查配置
├── scripts/
│   ├── dev.ts                  # 开发启动脚本(并行启动 API + Vite
│   ├── build.ts                # 生产构建脚本Vite → 代码生成 → Bun compile
│   └── clean.ts                # 清理脚本
├── src/
│   ├── server/                 # 后端代码
│   │   ├── bootstrap.ts        # 统一启动引导(配置加载 → 服务启动 → 优雅关闭)
│   │   ├── config.ts           # CLI 参数解析 + YAML 配置加载
│   │   ├── dev.ts              # 开发模式入口
│   │   ├── main.ts             # 生产模式入口
│   │   ├── server.ts           # HTTP 服务器Bun.serve routes 声明式路由)
│   │   ├── helpers.ts          # 共享响应工具健康检查、JSON 响应)
│   │   ├── middleware.ts        # API 参数校验中间件
│   │   ├── static.ts           # 静态资源服务
│   │   └── routes/             # API 路由处理器
│   │       └── health.ts       # 健康检查端点
│   ├── shared/
│   │   ├── api.ts              # 前后端共享 TypeScript 类型定义
│   │   └── app.ts              # 应用全局常量name、title、version 等)
│   └── web/                    # 前端代码
│       ├── index.html          # HTML 入口
│       ├── main.tsx            # React 入口BrowserRouter + QueryClient + ErrorBoundary
│       ├── app.tsx             # 根组件Admin 布局Header + Sidebar + Content
│       ├── routes.tsx          # 路由配置
│       ├── styles.css          # 全局样式
│       ├── css.d.ts            # CSS 模块类型声明
│       ├── pages/              # 页面组件
│       │   ├── dashboard/      # 仪表盘页
│       │   ├── users/          # 用户管理页
│       │   ├── settings/       # 系统设置页
│       │   └── 404/            # 404 页面
│       ├── components/         # UI 组件
│       │   ├── ErrorBoundary.tsx
│       │   └── Sidebar/        # 侧边栏组件
│       ├── hooks/              # React Hooks
│       ├── utils/              # 前端工具函数
│       ├── menu.tsx            # 菜单配置
│       └── routes.tsx          # 路由配置
├── tests/                      # 测试文件(镜像 src 目录结构)
├── openspec/                   # OpenSpec 规格与变更管理
└── docs/                       # 项目文档

配置

项目使用 YAML 配置文件,支持环境变量覆盖。

配置文件

复制 config.example.yamlconfig.yaml(或任意名称),根据需要修改:

server:
  host: "127.0.0.1"
  port: 3000

环境变量覆盖

环境变量 对应配置字段 默认值
HOST server.host 127.0.0.1
PORT server.port 3000

配置优先级

环境变量 > YAML 配置文件 > 代码默认值

使用自定义配置

bun run dev custom-config.yaml

技术栈

运行时

技术 说明
Bun JavaScript/TypeScript 运行时、包管理器、打包器
TypeScript 类型安全的 JavaScript 超集

后端

技术 说明
Bun.serve HTTP 服务器,声明式路由匹配
Bun.YAML YAML 配置文件解析
es-toolkit 高性能工具库(推荐优先使用)

前端

技术 说明
React 19 UI 组件框架
React Router SPA 路由与页面导航
TDesign React 企业级 UI 组件库
@tanstack/react-query 服务端状态管理与数据获取
Recharts 图表可视化(推荐使用)
Vite 前端构建工具

工程化

技术 说明
ESLint 代码规范检查
Prettier 代码格式化
Husky Git hooks 管理
Commitlint Git 提交消息校验

测试

技术 说明
bun:test Bun 内置测试框架
@testing-library/react React 组件测试
jsdom DOM 环境模拟

开源协议

MIT

Description
No description provided
Readme Apache-2.0 620 KiB
Languages
TypeScript 95.7%
JavaScript 2.5%
CSS 1.6%
HTML 0.2%