MorJS 复杂小程序 主/子分包研发模式

2024-01-18 17:48 更新

业务可基于业务对小程序中的分包进行拆分,以达到各个业务相互解耦,独立迭代的目的,参见下方分包配置示例:


import { defineConfig, takin } from '@morjs/cli'

export default defineConfig([
  {
    name: 'tt',
    sourceType: 'alipay',
    target: 'bytedance',
    modules: [
      // 主入口包
      {
        name: 'miniapp-entry',
        git: {
          url: 'git@github.com:abc/miniapp-entry.git',
          branch: 'dev/1.0.0'
        },
        scripts: {
          before: ['npm i', 'npm run build:dy']
        },
        dist: 'dist/dy'
      },

      // 搜索分包
      {
        git: {
          url: 'git@github.com:abc/eleme-miniapp-plugin-search.git',
          branch: 'feat/upgrade-to-mor-2'
        },
        scripts: {
          before: ['npm i', 'cd plugin && npm i', 'mor compile --name dy']
        },
        dist: 'miniprogram_tt/dist'
      },

      // 红包分包
      {
        git: {
          url: 'git@github.com:abc/vouchers.git',
          branch: 'feature/dy'
        },
        scripts: {
          before: ['npm i', 'cd plugin && npm i', 'mor compile --name dy']
        },
        dist: 'dist/bytedance'
      },

      // 订单列表
      {
        git: {
          url: 'git@github.com:abc/miniapp-plugin-orderlist.git',
          branch: 'dev/dy/10.12.5'
        },
        scripts: {
          before: ['npm i', 'npm run build:dy']
        },
        dist: 'build/_bytedance'
      },

      // 平台(地址管理)
      {
        git: {
          url: 'git@github.com:abc/king-home-alipay.git',
          branch: 'feature/dy'
        },
        scripts: {
          before: ['npm i', 'mor compile --name douyin_subpackage']
        },
        dist: 'dist'
      }
    ]
  }
])

通过 MorJS 命令:mor compile --compose 即可集成上述配置中宿主和相关的分包

运行结果示例:


[mor] ⚑ 当前 MorJS 为开源版本: @morjs/cli@1.0.0
[mor] ℹ 发现配置文件: mor.config.ts
[mor] ✔ 配置文件加载成功: mor.config.ts
[mor] ℹ 小程序集成功能已开启
[mor] ℹ 即将开始集成以下模块(最大并发数: 4):
[mor] ℹ ┌──────────────────────────────────────────────┬────────────────┬──────┬──────┐
        │ 模块 (共 6 个, 集成终态: 已集成)                 │ 版本           │ 类型  │ 模式  │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┤
        │ miniprogram_host                             │ *              │ 宿主  │ 编译 │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┤
        │ miniapp-entry                                │ dev/dy_10.12.5 │ 分包  │ 组合 │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┤
        │ eleme-ad_eleme-miniapp-plugin-search         │ feat/upgrade-… │ 分包  │ 组合 │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┤
        │ mini-foundation_vouchers                     │ feature/dy     │ 分包  │ 组合 │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┤
        │ eleme_miniapp-plugin-orderlist               │ dev/dy/10.12.5 │ 分包  │ 组合 │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┤
        │ alsc-mini-app_king-home-alipay               │ feature/dy     │ 分包  │ 组合 │
        └──────────────────────────────────────────────┴────────────────┴──────┴──────┘
[mor] ℹ 模块 eleme_miniapp-plugin-orderlist 前置脚本开始执行...
[mor] ℹ 模块 eleme_miniapp-plugin-orderlist 执行命令: npm i
[mor] ℹ 模块 alsc-mini-app_king-home-alipay 开始下载...
[mor] ℹ 模块 eleme-ad_eleme-miniapp-plugin-search 前置脚本开始执行...
[mor] ℹ 模块 eleme-ad_eleme-miniapp-plugin-search 执行命令: npm i
[mor] ℹ 模块 mini-foundation_vouchers 前置脚本开始执行...
[mor] ℹ 模块 mini-foundation_vouchers 执行命令: npm i
[mor] ✔ 模块 alsc-mini-app_king-home-alipay 下载成功
[mor] ℹ 模块 alsc-mini-app_king-home-alipay 前置脚本开始执行...
[mor] ℹ 模块 alsc-mini-app_king-home-alipay 执行命令: npm i
[mor] ℹ 模块 eleme_miniapp-plugin-orderlist 执行命令: npm run build:dy
[mor] ✔ 模块 eleme_miniapp-plugin-orderlist 前置脚本执行成功, 耗时: 27.440s
[mor] ℹ 模块 alsc-mini-app_king-home-alipay 执行命令: mor compile --name douyin_subpackage
[mor] ✔ 模块 alsc-mini-app_king-home-alipay 前置脚本执行成功, 耗时: 70.623s
[mor] ℹ 模块 mini-foundation_vouchers 执行命令: cd plugin && npm i
[mor] ℹ 模块 mini-foundation_vouchers 执行命令: mor compile --name dy
[mor] ℹ 模块 eleme-ad_eleme-miniapp-plugin-search 执行命令: cd plugin && npm i
[mor] ✔ 模块 mini-foundation_vouchers 前置脚本执行成功, 耗时: 93.399s
[mor] ℹ 模块 eleme-ad_eleme-miniapp-plugin-search 执行命令: mor compile --name dy
[mor] ✔ 模块 eleme-ad_eleme-miniapp-plugin-search 前置脚本执行成功, 耗时: 115.475s
[mor] ℹ 准备配置中, 即将开始编译 👇
        配置名称: tt
        编译目标: 字节小程序
        编译环境: development
        编译类型: 小程序
        编译模式: bundle
        源码类型: alipay
        源码目录: src
        输出目录: dist/bytedance
[mor] ℹ 已开启缓存, 可通过 --no-cache 关闭
[mor] ℹ 已开启 node_modules 组件处理
[mor] ℹ 开始编译 ...
[mor] ℹ 依赖分析中 ...
[mor] ℹ 依赖分析完成: 耗时: 86.012583 ms
[mor] ℹ 模块集成结果:
[mor] ℹ ┌──────────────────────────────────────────────┬────────────────┬──────┬──────┬──────┐
        │ 模块 (共 6 个, 集成终态: 已集成)                 │ 版本           │ 类型  │ 模式  │ 结果 │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┼──────┤
        │ miniprogram_host                             │ *              │ 宿主  │ 编译 │  ✔   │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┼──────┤
        │ miniapp-entry                                │ dev/dy_10.12.5 │ 分包  │ 组合 │  ✔   │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┼──────┤
        │ eleme-ad_eleme-miniapp-plugin-search         │ feat/upgrade-… │ 分包  │ 组合 │  ✔   │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┼──────┤
        │ mini-foundation_vouchers                     │ feature/dy     │ 分包  │ 组合 │  ✔   │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┼──────┤
        │ eleme_miniapp-plugin-orderlist               │ dev/dy/10.12.5 │ 分包  │ 组合 │  ✔   │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┼──────┤
        │ alsc-mini-app_king-home-alipay               │ feature/dy     │ 分包  │ 组合 │  ✔   │
        └──────────────────────────────────────────────┴────────────────┴──────┴──────┴──────┘
[mor] ✔ 集成产物目录: dist/bytedance
[mor] ✔ 编译完成, 耗时: 127941.680666 ms

用小程序 IDE 打开 dist/bytedance 目录即可预览集成后的完整小程序。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号