shop-wx/doc/项目清理计划.md

437 lines
14 KiB
Markdown
Raw Permalink Normal View History

# 项目清理计划
## 项目概述
本项目基于 **uni-app + Vue 3** 技术栈的电商类应用。当前项目混合了技术栈代码和业务逻辑代码,需要进行清理,保留所有技术栈相关的配置和框架代码,删除所有业务逻辑相关的文件和代码。
---
## 一、技术栈分析
### 1.1 核心技术框架
- **前端框架:** Vue 3.4.21
- **多端框架:** uni-app (3.0.0)
- **构建工具:** Vite 5.2.8 + Uni插件系列
- **UI框架** UnoCSS 66.0.0 + uni-ui组件库
- **状态管理:** Pinia 2.0.36 + pinia-plugin-persistedstate 3.2.1
- **HTTP库** Alova 3.3.3 + @alova/adapter-uniapp 2.0.14
- **类型系统:** TypeScript 5.8.0
- **路由:** uni-app内置路由
### 1.2 开发工具链
- **代码规范:** ESLint 9.31.0 + @uni-helper/eslint-config
- **提交规范:** Husky 9.1.7 + @commitlint/cli
- **代码格式化:** unplugin-auto-import
- **构建分析:** rollup-plugin-visualizer
- **开发服务器:** Vite + proxy配置
### 1.3 主要依赖
- dayjs (时间处理)
- js-cookie (Cookie管理)
- html5-qrcode / vue-qrcode-reader (二维码)
- wot-design-uni (UI组件库)
- z-paging (分页组件)
- @tanstack/vue-query (数据状态管理)
- sass (CSS预处理)
---
## 二、保留的技术栈文件清单
### 2.1 根目录配置文件 ✅ 保留
```
✓ package.json # 依赖配置(保留技术栈依赖,删除业务依赖)
✓ pnpm-lock.yaml # 锁定文件
✓ tsconfig.json # TypeScript配置
✓ vite.config.ts # Vite构建配置保留简化业务相关配置
✓ uno.config.ts # UnoCSS配置
✓ manifest.config.ts # uni-app应用配置保留基础配置删除业务配置
✓ pages.config.ts # 页面配置(保留基础配置)
✓ eslint.config.mjs # ESLint配置
✓ .editorconfig # 编辑器配置
✓ .gitignore # Git忽略配置
✓ .npmrc # NPM配置
✓ .commitlintrc.cjs # 提交规范配置
```
### 2.2 环境配置目录 ✅ 保留
```
✓ env/ # 环境变量目录(保留技术栈相关配置)
- .env.development
- .env.production
- .env.test
- env.d.ts
```
### 2.3 源代码核心架构 ✅ 保留
```
✓ src/
✓ main.ts # 应用入口
✓ App.vue # 根组件
✓ uni.scss # 全局样式
✓ config/ # 基础配置
✓ setting.ts # 通用配置模板
✓ http/ # HTTP请求核心
✓ http.ts # HTTP封装保留核心功能
✓ interceptor.ts # 拦截器(保留技术栈拦截)
✓ types.ts # HTTP类型定义
✓ tools/
✓ queryString.ts # 工具函数
✓ hooks/ # 通用Hooks
✓ useRequest.ts # 请求Hook模板
✓ utils/ # 通用工具(保留技术栈工具)
✓ common.ts # 通用工具函数
✓ platform.ts # 平台检测
✓ systemInfo.ts # 系统信息
✓ bus.ts # 事件总线
✓ store/ # 状态管理(保留核心结构)
✓ index.ts # Pinia实例
✓ theme.ts # 主题管理
✓ components/ # 基础组件(保留通用组件)
✓ icons/ # 图标组件(保留技术栈图标)
✓ layouts/ # 布局组件(保留基础布局)
✓ default.vue # 默认布局模板
✓ router/ # 路由配置
✓ config.ts # 路由配置(保留基础配置)
✓ interceptor.ts # 路由拦截器
✓ tabbar/ # 底部导航(保留配置结构)
✓ config.ts # 导航配置模板
✓ store.ts # 导航状态
✓ types/ # 类型定义
✓ typings.ts # 全局类型
✓ auto-import.d.ts # 自动导入类型
✓ components.d.ts # 组件类型
✓ uni-pages.d.ts # 页面类型
✓ style/ # 全局样式
✓ index.scss # 全局样式入口
✓ iconfont.css # 图标字体
✓ uni_modules/ # Uni插件模块保留
✓ uni-icons/ # 图标组件
✓ uni-scss/ # SCSS工具
✓ static/ # 静态资源(保留基础资源)
✓ tabbar/ # 导航图标(保留基础图标)
```
### 2.4 脚本目录 ✅ 保留
```
✓ scripts/ # 构建脚本
✓ postupgrade.js # 升级后处理
✓ window-path-loader.js # 路径加载器
```
### 2.5 开发工具配置 ✅ 保留
```
✓ .husky/ # Git hooks
✓ .vscode/ # VS Code配置
```
---
## 三、需要删除的业务逻辑文件清单
### 3.1 API接口层 ❌ 删除
```
❌ src/api/ # 全部业务API
❌ foo.ts # 示例API
❌ goods/ # 商品相关API
❌ login/ # 登录相关API
❌ layout/ # 布局相关API
❌ me/ # 个人中心API
❌ order/ # 订单相关API
❌ system/ # 系统管理API
❌ types/ # 业务类型定义
```
### 3.2 页面组件层 ❌ 删除
```
❌ src/pages/ # 全部业务页面
❌ about/ # 关于页面
❌ index/ # 首页(商品、购物车)
❌ login/ # 登录注册页面
❌ me/ # 个人中心页面
❌ order/ # 订单相关页面
❌ QrScanner/ # 二维码扫描页面
```
### 3.3 业务组件层 ❌ 删除
```
❌ src/components/
❌ icons/ # 业务图标组件
❌ position-edit/ # 位置编辑组件
```
### 3.4 状态管理 ❌ 删除
```
❌ src/store/
❌ cart.ts # 购物车状态
❌ user.ts # 用户状态
```
### 3.5 业务工具类 ❌ 删除
```
❌ src/utils/
❌ dataTree.ts # 树形数据处理
❌ index.ts # 业务工具集合
❌ login-util.ts # 登录工具
❌ qrcode.ts # 二维码工具
❌ token-util.ts # Token工具
❌ updateManager.wx.ts # 更新管理
❌ uploadFile.ts # 文件上传
```
### 3.6 业务配置 ❌ 删除
```
❌ src/hooks/
❌ useUpload.ts # 上传Hook
❌ src/static/
❌ tabbar/ # 业务相关静态资源
```
### 3.7 根目录业务文件 ❌ 删除
```
❌ src/App.ku.vue # 业务根组件
❌ project.config.json # 微信小程序业务配置
❌ project.private.config.json # 私有配置
❌ thirdParty.zip # 第三方库压缩包
❌ vite.config.ts.timestamp-*.mjs # 构建缓存文件
❌ README.md # 业务说明文档(如需保留需重写)
❌ index.html # H5入口需要保留但删除业务内容
❌ favicon.ico # 业务图标
```
### 3.8 编译产物 ❌ 删除
```
❌ dist/ # 构建产物
```
---
## 四、package.json 依赖清理计划
### 4.1 计划保留的技术栈依赖
计划保留以下核心依赖,用于构建完整的技术栈:
**核心框架依赖**
- Vue 3.4.21 及相关 uni-app 核心包
- Vite 5.2.8 及 uni-app 相关插件系列
**UI和样式依赖**
- UnoCSS 66.0.0 及相关预设
- sass 样式预处理器
- @dcloudio/uni-components 基础组件库
**状态管理和HTTP依赖**
- Pinia 状态管理及持久化插件
- Alova HTTP请求库及uni-app适配器
- @tanstack/vue-query 数据状态管理
**类型系统依赖**
- TypeScript 及相关类型定义包
**代码质量工具**
- ESLint 代码规范检查
- @commitlint 提交规范检查
- Husky Git hooks 管理
**开发工具依赖**
- unplugin-auto-import 自动导入插件
- rollup-plugin-visualizer 构建分析工具
### 4.2 计划删除的业务依赖
以下业务相关依赖计划从项目中移除:
**业务功能依赖**
- dayjs (时间处理,可根据需要作为工具保留)
- js-cookie (Cookie处理业务相关)
- html5-qrcode、vue-qrcode-reader (二维码扫描功能)
- wot-design-uni (业务UI组件库可选保留)
- z-paging (分页组件,业务相关)
- abortcontroller-polyfill (网络请求polyfill可选保留)
---
## 五、配置简化计划
### 5.1 vite.config.ts 简化计划
计划对该配置文件进行以下调整:
- 移除业务相关的环境变量读取逻辑
- 保留核心构建配置和基础优化设置
- 精简业务插件配置
### 5.2 manifest.config.ts 简化计划
计划对该配置文件进行以下调整:
- 清理业务相关的应用名称、描述等配置
- 保留平台相关的核心配置项
- 优化应用图标路径配置
### 5.3 pages.config.ts 简化计划
计划对该配置文件进行以下调整:
- 移除所有业务页面路由定义
- 保留基础页面结构模板
- 建立示例页面路由
### 5.4 路由配置简化计划
计划对路由系统进行以下调整:
- 清理业务相关的路由规则
- 建立基础路由框架
- 创建示例路由配置
### 5.5 状态管理简化计划
计划对状态管理进行以下调整:
- 移除业务状态管理文件cart.ts, user.ts等
- 保留系统级状态管理theme.ts等
- 建立示例状态管理模板
---
## 六、清理后的项目结构预览
```
project-root/
├── doc/ # 项目文档
│ └── 项目清理计划.md # 本文档
├── env/ # 环境配置(保留)
├── src/
│ ├── components/ # 基础组件(保留)
│ ├── config/ # 基础配置(保留)
│ ├── http/ # HTTP核心保留
│ ├── hooks/ # 通用Hook保留
│ ├── layouts/ # 基础布局(保留)
│ ├── router/ # 路由配置(简化)
│ ├── static/ # 静态资源(保留)
│ ├── store/ # 状态管理(保留)
│ ├── style/ # 全局样式(保留)
│ ├── tabbar/ # 导航配置(简化)
│ ├── types/ # 类型定义(保留)
│ ├── uni_modules/ # Uni插件保留
│ ├── utils/ # 通用工具(保留)
│ ├── App.vue # 根组件(简化)
│ ├── main.ts # 应用入口(保留)
│ └── uni.scss # 全局样式(保留)
├── scripts/ # 构建脚本(保留)
├── package.json # 依赖配置(保留)
├── pnpm-lock.yaml # 锁定文件(保留)
├── tsconfig.json # TS配置保留
├── vite.config.ts # Vite配置简化
├── uno.config.ts # UnoCSS配置保留
├── manifest.config.ts # 应用配置(简化)
├── pages.config.ts # 页面配置(简化)
├── eslint.config.mjs # ESLint配置保留
└── 其他配置文件...
```
---
## 七、清理计划执行框架
### 阶段一:项目准备(已完成)
- ✅ 项目现状分析
- ✅ 清理目标确认
- ✅ 保留/删除清单制定
### 阶段二:业务文件移除计划
计划移除的文件类型及位置:
- **页面文件**`src/pages/` 目录下的所有业务页面
- **接口文件**`src/api/` 目录下的所有业务API
- **业务组件**`src/components/` 目录下的业务特定组件
- **业务状态**`src/store/` 目录下的业务状态管理文件
- **业务工具**`src/utils/` 目录下的业务工具类
### 阶段三:配置文件优化计划
计划优化的配置文件:
- `package.json` - 精简依赖项
- `vite.config.ts` - 简化构建配置
- `manifest.config.ts` - 清理业务配置
- `pages.config.ts` - 简化路由配置
- 根目录业务相关文件
### 阶段四:核心代码重构计划
计划重构的核心文件:
- `App.vue` - 简化为技术栈模板
- HTTP请求封装 - 移除业务拦截逻辑
- 状态管理 - 保留技术栈核心结构
- 路由配置 - 建立示例路由体系
### 阶段五:验证测试计划
计划进行的验证项目:
- 依赖重新安装测试
- 构建流程验证
- 开发模式测试
- 多平台兼容性检查
### 阶段六:文档更新计划
计划的文档工作:
- 更新技术栈说明文档
- 建立示例代码结构
- 编写基础使用指南
---
## 八、重要说明
⚠️ **风险提示:**
1. 本次清理计划将移除所有业务逻辑代码,执行前需要完整备份
2. 技术栈文件的保留需要根据实际需求进行评估和调整
3. 配置简化可能影响现有功能,需要谨慎评估
4. 建议在清理前明确需要保留的业务模块清单
5. 清理过程不可逆,请确保有完整的回滚方案
📝 **后续规划建议:**
1. 清理完成后,建立基于该技术栈的完整示例项目
2. 建立技术栈组件使用文档和规范
3. 制定基于该模板的开发最佳实践指南
---
## 九、工作量评估
基于当前项目状况,清理计划涉及的工作量如下:
**文件处理量**
- 业务文件数量:约 200+ 个文件
- 需要简化的配置文件5-10 个
- 需要重构的核心文件10-20 个
**工作内容分布**
- 文件清理与删除
- 配置文件简化与优化
- 核心代码重构
- 测试验证(多平台)
- 文档更新与完善
**时间成本估算**
- 根据工作量复杂程度,预计需要 3-5 个工作日完成全部清理工作
*注:以上为参考估算,实际工作量可能因项目细节和需求变化而调整*
---
## 十、总结
本计划旨在将现有项目从完整的电商应用转换为纯净的 uni-app + Vue 3 技术栈模板。通过系统性的清理和重构,目标是保留核心技术架构,移除业务逻辑,为后续项目提供干净的开发基础。
**计划价值**
- 提供标准化的技术栈模板
- 简化项目结构,提高可维护性
- 为新项目提供快速启动的基础框架
**实施建议**
建议在执行清理工作前,组织团队进行充分讨论,确认:
- 技术栈保留的完整性
- 业务模块清理的彻底性
- 配置简化的合理性
- 后续维护的可行性