MorJS compileType - 编译类型
- 类型:
string
- 默认值:
miniprogram
- 可选值:
-
miniprogram
: 以小程序的方式编译,入口配置文件为 app.json
-
plugin
: 以插件的方式编译,入口配置文件为 plugin.json
-
subpackage
: 以分包的方式编译,入口配置文件为 subpackage.json
-
component
: 以组件的方式编译,入口配置文件为 component.json
编译类型,用于配置当前项目的产物形态,支持类型如下:
-
miniprogram
: 小程序形态,以 app.json
作为入口配置文件 -
plugin
: 小程序插件形态,以 plugin.json
作为入口配置文件 -
subpackage
: 小程序分包形态,以 subpackage.json
作为入口配置文件 -
component
: 小程序组件形态,以 component.json
作为入口配置文件
同一个项目可通过不同的 compileType
配合不同的入口配置文件输出不同的产物形态,有关多形态相互转换的进一步解释,可参见文档:小程序形态一体化。
参考配置示例:
/* 配置示例 */
// 小程序 app.json 配置示例
// 详细配置可参见微信小程序或支付宝小程序 app.json 配置
{
"pages": [
"pages/todos/todos",
"pages/add-todo/add-todo"
],
// subpackages 或 subPackages 均可
"subPackages": [
{
"root": "my",
"pages": [
"pages/profile/profile"
]
}
]
}
// 小程序插件 plugin.json 配置示例
// 详细配置可参见微信小程序或支付宝小程序 plugin.json 配置
{
"publicComponents": {
"list": "components/list/list"
},
"publicPages": {
"hello-page": "pages/index/index"
},
"pages": [
"pages/index/index",
"pages/another/index"
],
// 插件导出的模块文件
"main": "index.js"
}
// 小程序分包 subpackage.json 配置示例
// 配置方式同 app.json 中的 subpackages 的单个分包配置方式一致
{
// type 字段为 MorJS 独有, 用于标识该分包为 "subpackage" 或 "main"
// 区别是: 集成时 "subpackage" 类型的分包会被自动合并到 app.json 的 subpackages 字段中
// "main" 类型的分包会被自动合并到 app.json 的 pages 字段中 (即: 合并至主包)
"type": "subpackage",
// root 字段将影响集成时分包产物合并至宿主小程序时的根目录
"root": "my",
// 注意: 编译分包以 pages 作为实际路径进行解析
"pages": [
"pages/profile/profile"
]
}
// 小程序组件 component.json 配置示例
// publicComponents 和 main 字段为 MorJS 自定义字段
{
// publicComponents 记录组件列表,标识 bundle 模式下哪些组件需要被编译
// publicComponents 有两种配置写法,写成数组时标识组件列表
"publicComponents": [
"components/banner/index",
"components/image/index",
"components/popup/index"
],
// publicComponents 写成 { key: value } 对象时,将 value 的组件编译到 key 对应的产物目录下
"publicComponents": {
"morjs-banner/index": "components/banner/index",
"morjs-image/index": "components/image/index",
"morjs-popup/index": "components/popup/index"
},
// main 用于配置组件初始化文件
"main": "index.js"
}
默认情况下不同 compileType
对应的入口配置文件会直接从 srcPath
和 srcPaths
所指定的源码目录中直接载入。
如需要定制入口配置文件的路径可通过 customEntries 配置 来自定义。