MorJS 復(fù)雜小程序 主/子分包研發(fā)模式

2024-01-18 17:48 更新

業(yè)務(wù)可基于業(yè)務(wù)對(duì)小程序中的分包進(jìn)行拆分,以達(dá)到各個(gè)業(yè)務(wù)相互解耦,獨(dú)立迭代的目的,參見下方分包配置示例:


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'
      },

      // 平臺(tái)(地址管理)
      {
        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 即可集成上述配置中宿主和相關(guān)的分包

運(yùn)行結(jié)果示例:


[mor] ? 當(dāng)前 MorJS 為開源版本: @morjs/cli@1.0.0
[mor] ? 發(fā)現(xiàn)配置文件: mor.config.ts
[mor] ? 配置文件加載成功: mor.config.ts
[mor] ? 小程序集成功能已開啟
[mor] ? 即將開始集成以下模塊(最大并發(fā)數(shù): 4):
[mor] ? ┌──────────────────────────────────────────────┬────────────────┬──────┬──────┐
        │ 模塊 (共 6 個(gè), 集成終態(tài): 已集成)                 │ 版本           │ 類型  │ 模式  │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┤
        │ 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 前置腳本開始執(zhí)行...
[mor] ? 模塊 eleme_miniapp-plugin-orderlist 執(zhí)行命令: npm i
[mor] ? 模塊 alsc-mini-app_king-home-alipay 開始下載...
[mor] ? 模塊 eleme-ad_eleme-miniapp-plugin-search 前置腳本開始執(zhí)行...
[mor] ? 模塊 eleme-ad_eleme-miniapp-plugin-search 執(zhí)行命令: npm i
[mor] ? 模塊 mini-foundation_vouchers 前置腳本開始執(zhí)行...
[mor] ? 模塊 mini-foundation_vouchers 執(zhí)行命令: npm i
[mor] ? 模塊 alsc-mini-app_king-home-alipay 下載成功
[mor] ? 模塊 alsc-mini-app_king-home-alipay 前置腳本開始執(zhí)行...
[mor] ? 模塊 alsc-mini-app_king-home-alipay 執(zhí)行命令: npm i
[mor] ? 模塊 eleme_miniapp-plugin-orderlist 執(zhí)行命令: npm run build:dy
[mor] ? 模塊 eleme_miniapp-plugin-orderlist 前置腳本執(zhí)行成功, 耗時(shí): 27.440s
[mor] ? 模塊 alsc-mini-app_king-home-alipay 執(zhí)行命令: mor compile --name douyin_subpackage
[mor] ? 模塊 alsc-mini-app_king-home-alipay 前置腳本執(zhí)行成功, 耗時(shí): 70.623s
[mor] ? 模塊 mini-foundation_vouchers 執(zhí)行命令: cd plugin && npm i
[mor] ? 模塊 mini-foundation_vouchers 執(zhí)行命令: mor compile --name dy
[mor] ? 模塊 eleme-ad_eleme-miniapp-plugin-search 執(zhí)行命令: cd plugin && npm i
[mor] ? 模塊 mini-foundation_vouchers 前置腳本執(zhí)行成功, 耗時(shí): 93.399s
[mor] ? 模塊 eleme-ad_eleme-miniapp-plugin-search 執(zhí)行命令: mor compile --name dy
[mor] ? 模塊 eleme-ad_eleme-miniapp-plugin-search 前置腳本執(zhí)行成功, 耗時(shí): 115.475s
[mor] ? 準(zhǔn)備配置中, 即將開始編譯 ??
        配置名稱: tt
        編譯目標(biāo): 字節(jié)小程序
        編譯環(huán)境: development
        編譯類型: 小程序
        編譯模式: bundle
        源碼類型: alipay
        源碼目錄: src
        輸出目錄: dist/bytedance
[mor] ? 已開啟緩存, 可通過 --no-cache 關(guān)閉
[mor] ? 已開啟 node_modules 組件處理
[mor] ? 開始編譯 ...
[mor] ? 依賴分析中 ...
[mor] ? 依賴分析完成: 耗時(shí): 86.012583 ms
[mor] ? 模塊集成結(jié)果:
[mor] ? ┌──────────────────────────────────────────────┬────────────────┬──────┬──────┬──────┐
        │ 模塊 (共 6 個(gè), 集成終態(tài): 已集成)                 │ 版本           │ 類型  │ 模式  │ 結(jié)果 │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┼──────┤
        │ 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] ? 集成產(chǎn)物目錄: dist/bytedance
[mor] ? 編譯完成, 耗時(shí): 127941.680666 ms

用小程序 IDE 打開 dist/bytedance 目錄即可預(yù)覽集成后的完整小程序。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)