5.7 KiB
5.7 KiB
范围与目标
- 将
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 构建脚本与依赖)
- 根级:
迁移步骤
- 初始化 uniapp-x 基座
- 采用官方 x 模板初始化项目骨架(Vite 驱动,启用原生渲染),并放置至
wwjcloud-web/uniapp-x。 - 配置
manifest.json(含vueVersion: 3、原生渲染开关、应用标识、权限),pages.json(保留现有路由结构与 tabbar 定义)。
- 采用官方 x 模板初始化项目骨架(Vite 驱动,启用原生渲染),并放置至
- 配置与构建升级
- 升级
@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 场景下的兼容性。
- 升级
- 代码迁移(结构保持 + 逐步原生化)
- 直迁阶段:复制
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 原生替代)。
- 直迁阶段:复制
- 配置文件平滑迁移
manifest.json:沿用源配置并补齐 x 所需字段(原生权限、平台配置)。pages.json:保持页面路由与 tabbar 结构;修正路径至 x 项目根(映射src/app/pages与src/pages)。- 样式:保留
uni.scss、windicss;验证 x 原生渲染对原子类与预处理器的支持,必要时加 platform guard。
- 状态与国际化保留
pinia模块:原样迁移,统一初始化于main.ts;保留模块命名与使用方式。vue-i18n:保留目录结构与加载策略,确保onLaunch期间完成语言初始化。
- 构建与联调
- 本地联调:
dev:h5验证功能与路由;dev:app-x在模拟器/真机(Harmony/Android/iOS)验证原生渲染。 - 持续迁移:按模块分批切换
*.uvue并替换不兼容库,确保每批均可编译与运行。
- 本地联调:
- 集成与发布
- 与
wwjcloud-web发布目录对齐:保留原发布产物结构,新增 x 构建产物发布路径说明(README.md已存在目录)。 - 提供打包指令与 CI 接入建议(H5 走 CLI,app-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/CD:H5 走 Node/Vite,app-x 走 HBuilderX 打包流水线。