Skip to content

2024.04.30

1. 背景

和平横版之前是在 hp-match/dzs-match2 中,为了方便组件和逻辑复用,需要尽早迁移到 dzs-match 这个主工程中,避免维护两套。

目标架构:

2. 迁移方法

采用脚本迁移。好处是:

  1. 工作量小
  2. 减少出错

脚本迁移策略:

  1. 对于公共目录,如 src/local-component, src/local-logic,先查找之前是否存在,如不存在则直接复制,如存在但文件内容不相同,则新建对应的-gp-hor文件夹,进行复制,如存在且该目录下所有文件内容相同,则略过
  2. 新建 gp-hor 子工程,对之前的子工程进行拷贝
  3. 记录下所有路径变化的文件,包括 x-gp-hor 的公共组件、逻辑,也包括 gp-hor 子工程下的文件,生成新旧文件映射
  4. 对复制的所有文件的引入路径,根据映射关系进行替换

迁移后的工作量

  1. 新建 pages.jsonmanifest.json,uni-app 项目没有这两文件跑不起来
  2. pages.json 只需要入口,其他页面路由还是从 router.js 中传给 uni-simple-router
  3. babel.config.js 中支持 vant 的按需引入
  4. 其他适配,比如 input 样式

工程内的适配工作较小,目前发现:

  1. 之前的做的乱七八糟的 ts 组件,各种 this as any,在编译期报错,需改回 js
  2. input、textarea 等元素被 uni-app 包装重写,需要样式更新
  3. 样式穿透由 >>> 改成 ::v-deep

3. 后续规划

当前阶段只是完成迁移,仍有一部分重复的代码,后面跟随需求重构。

后续,横竖版公用的逻辑、组件分别放到 local-logiclocal-component中,核心组件、逻辑下沉到 press-plus 中。