# CLAUDE.md 此文件为 Claude Code (claude.ai/code) 在此代码库中工作时提供指导。 ## 项目概述 **msmg-uni** 是一个基于 UniApp 框架构建的微信小程序移动应用,使用 Vue 3 + TypeScript + Vite + Unocss + uview-plus 技术栈。 ## 编码风格 1. 尽可能使用if return 代替 if else 2. 代码结构清晰,关键地方需要中文注释 3. 使用单引号替代双引号 4. 函数参数尽量使用解构赋值 5. 行结尾禁止添加分号 ## 开发命令 ### 开发环境 - `npm run dev:mp-weixin` - 微信小程序开发 ### 生产构建 - `npm run build:mp-weixin` - 构建微信小程序 ### 类型检查 - `npm run type-check` - 运行 TypeScript 类型检查 ## 架构设计 ### 核心目录结构 ``` src/ ├── @api/ # API 层和服务定义 ├── @layout/ # 布局组件 (PageTitle, RootView) ├── components/ # 可复用的 Vue 组件 ├── common/ # 全局工具函数和常量 ├── hooks/ # Vue 3 组合式函数 ├── pages/ # 应用页面 ├── stores/ # Pinia 状态管理 ├── static/ # 静态资源 ├── utils/ # 工具函数 ├── App.vue # 根应用组件 ├── main.ts # 应用入口文件 ├── pages.json # UniApp 页面配置 └── manifest.json # 平台特定应用配置 ``` ### 技术栈 - **框架**: UniApp 3.x + Vue 3 组合式 API - **语言**: TypeScript 4.9+ - **构建工具**: Vite 5.2.8 - **状态管理**: Pinia 2.0.36 - **UI 库**: uview-plus 3.6.17 - **样式**: UnoCSS + SCSS - **HTTP**: 自定义工具 + 拦截器 - **国际化**: vue-i18n - **图标**: unocss icons tabler图标,使用i-tabler-* 引入图标 ### 核心模式 **状态管理** - 使用 `/src/stores/` 中的 Pinia stores - 主题 store 支持明暗模式切换 - 响应式状态的组合模式 **API 层** - API 定义在 `/src/@api/` 中,使用 `.api.ts` 后缀 - `/src/utils/http.ts` 中的 HTTP 工具处理: - 请求/响应日志 - `/types/` 中的 TypeScript DTO/VO 模式 **组件开发** - 使用 Vue 3 组合式 API 和 ` ``` ### 页面结构 根组件为 ### HTTP 请求 使用配置的 HTTP 工具: ```typescript import { http } from '@/utils/http' ``` ### 状态管理 创建带 TypeScript 的 Pinia stores: ```typescript import { defineStore } from 'pinia' export const useExampleStore = defineStore('example', { state: () => ({ // 响应式状态 }), actions: { // 操作方法 } }) ``` ## 构建配置 ### Vite 配置 - UnoCSS 集成与微信小程序预设 - SCSS 预处理 - Vue JSX 支持 - 配置路径别名 ### UnoCSS 配置 - 配置自定义主题颜色 - Tabler 图标集成 - 微信小程序兼容性 - 定义的实用快捷方式 ### TypeScript 配置 - Vue 3 TypeScript 支持 - UniApp 类型定义 - 清理导入的路径映射 - 启用严格模式 ## API 文档查询 ### Context7 集成 可以使用 Context7 查询相关技术栈的最新 API 文档: ### 查询建议 - 在开发过程中遇到 API 使用问题时,优先使用 Context7 查询最新文档 - 可以指定 topic 参数来查询特定主题,例如:`topic="composition-api"` - 对于具体的组件或功能,可以直接查询相关主题:`topic="u-button"`、`topic="router"`