MorJS modules - 模块配置

2024-01-14 11:26 更新
  • 类型: ​object[]
  • 默认值: ​[]

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

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

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

      // 模块类型, 默认为 `subpackage`
      //  - 声明为 主包(main) 的模块,会将页面插入到 app.json 的 pages 中
      //  - 声明为 分包(subpackage) 的模块,会将页面插入到 app.json 的 subPackages 中
      //  - 声明为 插件(plugin) 的模块: 功能研发中
      type: 'subpackage',

      /* 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/yourCustomModulePath'
      file: {
        path: '/Users/yourHomeDir/Workspace/yourCustomModulePath'
      },

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

      // 构建产物目录配置, 默认为 `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: {}
      },

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


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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号