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