MorJS host - 宿主配置

2024-01-13 23:16 更新
  • 类型: ​object
  • 默认值: ​{}

小程序集成宿主配置, 详细参见 复杂小程序集成功能。

/* 配置示例 */
{
  // 小程序宿主配置
  host: {
    // 宿主名称, 可选值, 默认会基于 `git` 或 `npm` 或 `tar` 或 `file` 或 `link` 配置自动生成
    name: '',

    // 模块集成模式, 默认为 `compose`
    //  - compose: 通过 compose 方式集成, 通过拷贝的方式复制到产物目录
    //  - compile: 通过 compile 方式集成, 需要通过 MorJS 编译流程
    mode: 'compose',

    /* git / npm / tar / file / link 均用于下载模块, 只需要配置一个即可 */

    // 通过 git 仓库配置宿主
    // 支持直接配置链接, 如:
    //   git: 'git@github.com:abc/cde.git#master'
    //
    // 注意: branch/tag/commit 的优先级为 commit > tag > branch, 相关字段均配置后,会按照优先级取用
    git: {
      // 仓库地址, 支持 git/http/https/ssh 协议链接
      url: 'git@github.com:abc/cde.git',
      // 分支配置, 默认为 HEAD
      branch: 'develop',
      // 标签配置
      tag: 'v1.1.0',
      // Git 提交 commit id
      commit: 'abcdefghigklmnopqrstuvwxyz',
    },

    // 通过 npm 配置宿主
    // 支持直接配置链接, 如:
    //   npm: 'your_package@1.2.0'
    npm: {
      // npm 名称
      name: 'your_package',
      // npm 版本, 默认为 `latest`
      version: '1.2.0'
    },

    // 通过 tar 配置宿主
    // 支持直接配置链接, 如:
    //   tar: 'https://your_domain.com/abc.tar.gz'
    tar: {
      url: 'https://your_domain.com/abc.tar.gz',
      // 支持增加扩展参数, 参见 got 配置
    },

    // 通过 file 配置宿主(复制)
    // 直接支持配置地址, 如:
    //   file: '/Users/yourHomeDir/Workspace/yourCustomHostPath'
    file: {
      path: '/Users/yourHomeDir/Workspace/yourCustomHostPath'
    },

    // 通过 link 配置宿主(软链)
    // 直接支持配置地址, 如:
    //   link: '/Users/yourHomeDir/Workspace/yourCustomHostPath'
    link: {
      path: '/Users/yourHomeDir/Workspace/yourCustomHostPath'
    },

    // 构建产物目录配置, 默认为 `dist`
    dist: 'dist',

    // 集成构建过程中可执行的脚本, 可选配置
    scripts: {
      // 执行脚本时的公共环境变量, 可选配置
      // MorJS 默认会注入如下环境变量:
      //   MOR_COMPOSER_MODULE_CWD: 当前模块工作目录
      //   MOR_COMPOSER_MODULE_TYPE: 当前模块类型
      //   MOR_COMPOSER_MODULE_HASH: 当前模块 hash 信息, 用于 MorJS 内部判断是否需要重新下载模块
      //   MOR_COMPOSER_MODULE_ROOT: 当前模块根目录
      //   MOR_COMPOSER_MODULE_SOURCE: 当前模块源码目录
      //   MOR_COMPOSER_MODULE_OUTPUT_FROM: 当前模块原始产物目录
      //   MOR_COMPOSER_MODULE_OUTPUT_TO: 当前模块集成产物目录
      env: {},

      // 模块编译或拷贝前执行脚本, 可选配置
      before: [
        // 可以直接以字符串的方式配置命令
        'npm i',

        // 也可以以对象的方式配置
        {
          // 需要执行的命令
          command: 'cd some_dir && mor compile',
          // 该命令的自定义环境变量
          env: {
            CUSTOM_ENV: 'CUSTOM_ENV_VALUE'
          },
          // 该命令的选项, 参见 execa.command 的 options 配置
          options: {
            shell: true
          }
        },
      ],

      // 模块编译完成后或拷贝后执行脚本, 可选配置
      after: [],

      // 所有模块完成集成之后执行脚本, 可选配置
      composed: [],

      // 脚本执行公共选项, 参见 execa.command 的 options 配置
      options: {}
    },

    // 模块配置信息, 对应 app.json 的内容
    // 该文件的配置方式,可以参见下方链接中有关 app.json 的描述
    // => https://mor.eleme.io/guides/basic/config#compiletype
    // 配置缺省状态下,集成时 MorJS 会自动读取 dist 配置所指向目录中对应的文件
    config: undefined
  }
}


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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号