# nianxx-h5 基于 Vite 的 H5 Web 项目(Vue 3 + TypeScript)。 ## 技术栈 - Vite(见 `package.json`,本仓库使用 ESM:`"type": "module"`) - Vue 3 + TypeScript - vue-router 4 - Pinia - Vant 4(配合 `unplugin-auto-import` / `unplugin-vue-components` 自动导入) - Tailwind CSS v4(通过 `@tailwindcss/vite`) - vue-i18n(支持:`zh-CN` / `en-US` / `th-TH`) - axios(统一请求库:`src/utils/request.ts`) - mitt(事件总线) ## 目录约定 - 入口:`src/main.ts` - 根组件:`src/App.vue` - 路由:`src/router/index.ts` - 页面:`src/pages/` - 公共组件:`src/components/` - 首页模块组件:`src/pages/home/components/` - 国际化:`src/i18n/` - 状态管理:`src/store/` - 全局样式:`src/styles/main.css` - 工具:`src/utils/` - 共享类型:`src/shared/` ## 本地开发 使用 Yarn。 ```bash yarn yarn dev ``` 常用命令: - `yarn dev`:启动开发服务器(端口 5174,配置见 `vite.config.ts`) - `yarn typecheck`:`vue-tsc --noEmit` - `yarn build`:类型检查 + 构建 - `yarn preview`:预览构建产物 - `yarn test`:运行 `src/**/*.test.ts`(Node 原生 test runner) 需要编译/测试时请手动确认执行。 ## 环境变量 本项目使用 Vite 环境变量(`import.meta.env.*`)。 必须配置: - `VITE_API_BASE_URL`:接口基础地址(请求库会校验,缺失会直接抛错) 常用配置: - `VITE_CLIENT_ID`:请求 header 注入的 `clientId` - `VITE_API_TIMEOUT_MS`:请求超时毫秒数(默认 15000) - `VITE_TOKEN`:临时 token(当前请求库会在请求前写入上下文,属于临时逻辑) ## 路由 当前路由配置见 `src/router/index.ts`(按 `src/pages/` 目录落地): - `/`、`/home`:首页 - `/login`:登录 - `/booking`:预定 - `/goods`:商品详情 - `/album`:相册 - `/quick`:快速预定 - `/order`、`/order/detail`:订单列表 / 订单详情 - `/service`:工单列表 ## 国际化(i18n) - i18n 实例:`src/i18n/index.ts` - 语言包:`src/i18n/modules/**/{zh-CN,en-US,th-TH}.ts` - 切换语言:`setLocale(locale)`(同时会同步 Vant 语言与 `document.lang`) ## 统一请求库 统一请求库实现: - `src/utils/request.ts` - 类型定义:`src/shared/request-types.ts` - 使用文档:`docs/request.md` ## 特殊说明(uni-\* 痕迹) 代码中仍存在部分 `uni.*` API(例如 `uni.navigateTo` / `uni.requestSubscribeMessage`)。如果最终运行环境为纯 H5 Web,需要确认这些能力的提供方式(注入 / 替换 / 降级)。 ## 协作规范 仓库协作约定见 `AGENTS.md`。