codecamp

MorJS host - 宿主配置

  • 类型: ​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
  }
}


MorJS consumes - 需要消费的共享依赖
MorJS modules - 模块配置
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

MorJS 指南

MorJS 基础用法

MorJS 配置

MorJS 编译相关配置

MorJS 进阶用法

MorJS Web开发

MorJS Web开发介绍

MorJS Web开发快速上手

MorJS Tabbar IOS 小黑条适配开关

MorJS 社区

MorJS 规范

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }