MorJS 復雜小程序 集成模塊配置

2024-01-18 17:49 更新

mor.config.ts 通過設置 host: {}modules: [{}] 來配置宿主或子模塊,如:

有關 MorJS 配置的詳細信息,參見:配置說明

export default defineConfig([
  {
    // 宿主配置
    host: {}

    // 子模塊(如:分包等)
    modules: [{}]
  }
])

上述示例中的 hostmodules 的配置方式基本一致,其中 host 只能配置一個,modules 可以配置多個,詳細的配置方式如下:

{
  /**
   * 模塊名稱, 可選值, 默認會基于 `npm` 或 `git` 或 `tar` 或 `link` 或 `file` 配置自動生成
   */
  name: '',

  /**
   * 模塊集成模式, 默認為 `compose`
   *  - compose: 通過 compose 方式集成, 通過拷貝的方式復制到產(chǎn)物目錄
   *  - compile: 通過 compile 方式集成, 需要通過 mor 編譯流程
   */
  mode: 'compose',

  /**
   * 模塊類型, 默認為 `subpackage`
   *  - 聲明為 宿主(host) 的模塊,模塊中包含 app.json 并作為其他模塊集成的目標,配置在 `host` 中的模塊,該類型固定為 `host `
   *  - 聲明為 主包(main) 的模塊,會將頁面插入到小程序 app.json 的 pages 中
   *  - 聲明為 分包(subpackage) 的模塊,會將頁面插入到小程序 app.json 的 subPackages 中
   *  - 聲明為 插件(plugin) 的模塊: 功能研發(fā)中
   */
  type: 'subpackage',

  /**
   * 下載配置
   *
   * npm / git / tar / link / file 均用于下載模塊, 只需要配置一個即可
   *
   * 如果同時配置了多個,則只會有一個下載配置生效,優(yōu)先級為:npm > git > tar > link > file
   */
  /* 通過 npm 配置模塊下載 */
  // 字符串方式配置,如:
  npm: 'your_package@1.2.0',
  // 對象方式配置,如:
  npm: {
    // npm 名稱
    name: 'your_package',
    // npm 版本, 默認為 `latest`
    version: '1.2.0'
  },

  /* 通過 git 倉庫配置模塊下載 */
  // 字符串方式配置,如:
  git: 'git@github.com:abc/cde.git#master'
  // 對象方式配置,如:
  // 注意: branch/tag/commit 的優(yōu)先級為 commit > tag > branch, 相關字段均配置后,會按照優(yōu)先級取用
  git: {
    // 倉庫地址, 支持 git/http/https/ssh 協(xié)議鏈接
    url: 'git@github.com:abc/cde.git',
    // 分支配置, 默認為 HEAD
    branch: 'develop',
    // 標簽配置
    tag: 'v1.1.0',
    // Git 提交 commit id
    commit: 'abcdefghijklmnopqrstuvwxyz',
  },

  /* 通過 tar 配置模塊下載 */
  // 字符串方式配置,如:
  tar: 'https://your_domain.com/abc.tar.gz',
  // 對象方式配置,如:
  tar: {
    url: 'https://your_domain.com/abc.tar.gz',
    // 支持增加擴展參數(shù), 參見 got 配置
  },

  /* 通過 link 配置(軟鏈)模塊下載 */
  // 字符串方式配置,如:
  link: '/Users/yourHomeDir/Workspace/yourCustomHostPath',
  // 對象方式配置,如:
  link: {
    path: '/Users/yourHomeDir/Workspace/yourCustomHostPath'
  },

  /* 通過 file 配置(復制)模塊下載 */
  // 字符串方式配置,如:
  file: '/Users/yourHomeDir/Workspace/yourCustomHostPath',
  // 對象方式配置,如:
  file: {
    path: '/Users/yourHomeDir/Workspace/yourCustomHostPath'
  },

  // 構建產(chǎn)物目錄配置, 默認為 `dist`
  // dist 配置的作用是告知 mor 當前模塊的產(chǎn)物所存放的目錄位置
  dist: 'dist',

  /**
   * 集成構建過程中可執(zhí)行的腳本, 可選配置
   */
  scripts: {
    // 執(zhí)行腳本時的公共環(huán)境變量, 可選配置
    // mor 默認會注入如下環(huán)境變量:
    //   MOR_COMPOSER_MODULE_CWD: 當前模塊工作目錄
    //   MOR_COMPOSER_MODULE_TYPE: 當前模塊類型
    //   MOR_COMPOSER_MODULE_HASH: 當前模塊 hash 信息, 用于 mor 內部判斷是否需要重新下載模塊
    //   MOR_COMPOSER_MODULE_ROOT: 當前模塊根目錄
    //   MOR_COMPOSER_MODULE_SOURCE: 當前模塊源碼目錄
    //   MOR_COMPOSER_MODULE_OUTPUT_FROM: 當前模塊原始產(chǎn)物目錄
    //   MOR_COMPOSER_MODULE_OUTPUT_TO: 當前模塊集成產(chǎn)物目錄
    env: {},

    // 模塊編譯或拷貝前執(zhí)行腳本, 可選配置
    before: [
      // 可以直接以字符串的方式配置命令
      'npm i',

      // 也可以以對象的方式配置
      {
        // 需要執(zhí)行的命令
        command: 'cd some_dir && mor compile',
        // 該命令的自定義環(huán)境變量
        env: {
          CUSTOM_ENV: 'CUSTOM_ENV_VALUE'
        },
        // 該命令的選項, 參見 execa.command 的 options 配置
        options: {
          shell: true
        }
      },
    ],

    // 模塊編譯完成后或拷貝后執(zhí)行腳本,配置方式同 before,可選配置
    after: [],

    // 所有模塊完成集成之后執(zhí)行腳本,配置方式同 before,可選配置
    composed: [],

    // 腳本執(zhí)行公共選項, 參見 execa.command 的 options 配置
    options: {}
  },

  /**
   * 模塊配置內容,參見下方集成產(chǎn)物規(guī)范的 [config].json 描述
   */
  config: undefined
}


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號