Files
wwjcloud-nest-v1/.trae/documents/迁移 java_uni-app 到 v1 并升级为 uniapp-x.md

75 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 范围与目标
-`niucloud-java/uni-app` 迁移至 `wwjcloud-nest-v1` 框架内(目标目录:`wwjcloud-nest-v1/wwjcloud-web` 下新建子项目)。
- 升级至 uniapp-x满足鸿蒙/安卓/iOS 原生编译,同时保持现有目录结构与风格的平滑迁移。
- 严格遵守 uniapp-x 规范:组件原生渲染(建议 `*.uvue` )、配置文件规范、平台构建流程。
## 现状盘点(已完成)
- 源项目:`/niucloud-java/uni-app`Vue3+Vite CLI`manifest.json`, `pages.json`, `App.vue`, `main.js`, `uni.scss`, `vite.config.ts``src/pages`, `src/app/pages`, `src/components`, `src/app/components/diy`, `src/stores`, `src/locale`)。
- v1 框架:`/wwjcloud-nest-v1/wwjcloud-web`(已存在发布目录),`/wwjcloud-nest-v1/admin`Vue3+Vite
- 关键依赖:`@dcloudio/vite-plugin-uni``pinia``vue-i18n``uview-plus``windicss` 等。
## 目标目录布局(保持风格与路径映射)
-`wwjcloud-nest-v1/wwjcloud-web` 下创建 `uniapp-x/`
- 根级:`App.uvue``main.ts``manifest.json``pages.json``uni.scss`
- 源码:
- `src/app/pages/**`(保留)
- `src/pages/**`(保留)
- `src/components/**`(保留)
- `src/app/components/diy/**`(保留)
- `src/stores/**`pinia 保留)
- `src/locale/**`(国际化保留)
- `src/utils/**``src/assets/**`(按需迁移)
- 构建:`vite.config.ts`(升级 x 兼容)、`package.json`(新增 x 构建脚本与依赖)
## 迁移步骤
1. 初始化 uniapp-x 基座
- 采用官方 x 模板初始化项目骨架Vite 驱动,启用原生渲染),并放置至 `wwjcloud-web/uniapp-x`
- 配置 `manifest.json`(含 `vueVersion: 3`、原生渲染开关、应用标识、权限),`pages.json`(保留现有路由结构与 tabbar 定义)。
2. 配置与构建升级
- 升级 `@dcloudio/vite-plugin-uni` 至 x 支持版本;新增/替换 x 通道相关依赖(如需 `uni-app-x` 套件)。
- `package.json` 增加脚本:`dev:h5``dev:app-x``build:h5``build:app-x(harmony/android/ios)`;保留 CLI 流程,同时集成 HBuilderX 原生打包链路。
- `vite.config.ts` 保留原插件(`UniLayouts`, `WindiCSS`),按平台条件启用;检查小程序专用插件在 x 场景下的兼容性。
3. 代码迁移(结构保持 + 逐步原生化)
- 直迁阶段:复制 `src/pages/**``src/app/pages/**``src/components/**``src/app/components/diy/**``src/stores/**``src/locale/**`;保持路径别名(`@`)与导入风格。
- 原生化阶段:优先将高频页面与全局组件改造为 `*.uvue`(如 `tabbar``auth/login``member/index`),逐批替换不兼容的 DOM/浏览器 API。
- UI 生态适配:审查 `uview-plus``uni-ui`、第三方库(`html2canvas`, `sortablejs`, `qrcode`);对不支持 x 的库采用替换、条件导入或平台分支H5 保留app-x 原生替代)。
4. 配置文件平滑迁移
- `manifest.json`:沿用源配置并补齐 x 所需字段(原生权限、平台配置)。
- `pages.json`:保持页面路由与 tabbar 结构;修正路径至 x 项目根(映射 `src/app/pages``src/pages`)。
- 样式:保留 `uni.scss``windicss`;验证 x 原生渲染对原子类与预处理器的支持,必要时加 platform guard。
5. 状态与国际化保留
- `pinia` 模块:原样迁移,统一初始化于 `main.ts`;保留模块命名与使用方式。
- `vue-i18n`:保留目录结构与加载策略,确保 `onLaunch` 期间完成语言初始化。
6. 构建与联调
- 本地联调:`dev:h5` 验证功能与路由;`dev:app-x` 在模拟器/真机Harmony/Android/iOS验证原生渲染。
- 持续迁移:按模块分批切换 `*.uvue` 并替换不兼容库,确保每批均可编译与运行。
7. 集成与发布
-`wwjcloud-web` 发布目录对齐:保留原发布产物结构,新增 x 构建产物发布路径说明(`README.md` 已存在目录)。
- 提供打包指令与 CI 接入建议H5 走 CLIapp-x 原生包走 HBuilderX/本地 CI
## 兼容性与风险清单
- 组件格式:`*.vue``*.uvue` 原生渲染;可分批进行,允许阶段性混用(受支持范围以官方为准)。
- 第三方库:依赖 DOM/Canvas 的库需替代或平台分支(`html2canvas`, `sortablejs`)。
- 小程序专用插件:`MiniProgramTailwind` 在 x 场景不适用,需条件禁用或替换。
- `uni_modules`:核对是否有 x 兼容版本(如 `uni-popup`, `uni-transition`, `uni-scss`)。
## 验收标准
- 目录与风格:新项目在 `wwjcloud-web/uniapp-x`,路径、命名、路由与国际化结构保持与原工程一致。
- 构建与运行:
- H5 可运行,主要页面功能完整。
- app-x 在 Harmony/Android/iOS 可编译与启动,核心页面(登录/会员/首页/TabBar完成原生渲染。
- 依赖与配置:`manifest.json``pages.json``vite.config.ts``package.json` 完成 x 兼容配置。
## 交付物
- 迁移后的 `uniapp-x` 子项目(完整源码与配置)。
- 构建脚本与打包说明(含 H5 与 app-x
- 兼容性清单与替换方案(不可用库的处理策略)。
- 初始功能验证报告H5 与三端真机/模拟器截图或日志)。
## 回滚预案
- 保留原 `niucloud-java/uni-app` 直至全量迁移完成;切换发布入口即可回退。
- 若某模块在 x 下阻塞,阶段性维持 H5 实现并以平台分支隔离,待替换后再切换为原生渲染。
## 后续工作(可选)
- 分批将剩余页面与自定义 Diy 组件原生化,并做性能调优(缓存/异步/批处理)。
- 完善 CI/CDH5 走 Node/Viteapp-x 走 HBuilderX 打包流水线。