codecamp

MorJS 复杂小程序 小程序插件研发模式

由于小程序插件无法独立运行,且对产物目录结构有特殊的要求,如:

dist
├── miniprogram
├── plugin
└── mini.project.json

基于这种情况,我们可以利用 MorJS 的集成功能,来实现插件研发,参考配置如下:

import { defineConfig } from '@morjs/cli'

export default defineConfig([
  {
    name: 'alipay_plugin',
    sourceType: 'alipay',
    target: 'alipay',
    // 编译类型为 插件
    compileType: 'plugin',
    compileMode: 'bundle',
    // 配置插件宿主
    host: {
      git: {
        url: 'git@github.com:abc/king-home-alipay.git',
        branch: 'master'
      },
      scripts: {
        before: ['npm i', 'npm run compile:ali']
      },
      dist: '_ali'
    },
    outputPath: 'dist',
    // 插件源码目录
    srcPath: 'plugin',
    autoClean: true
  }
])

通过 MorJS 命令:mor compile --name alipay_plugin --compose 即可集成上述配置中的小程序插件及其宿主。

运行结果示例:

[mor] ⚑ 当前 MorJS 为开源版本: @morjs/cli@1.0.0
[mor] ℹ 发现配置文件: mor.config.ts
[mor] ✔ 配置文件加载成功: mor.config.ts
[mor] ℹ 小程序集成功能已开启
[mor] ℹ 即将开始集成以下模块(最大并发数: 4):
[mor] ℹ ┌──────────────────────────────────────────────┬────────────────┬──────┬──────┐
        │ 模块 (共 1 个, 集成终态: 已集成)                 │ 版本           │ 类型  │ 模式  │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┤
        │ alsc-mini-app_king-home-alipay               │ master         │ 宿主  │ 组合 │
        └──────────────────────────────────────────────┴────────────────┴──────┴──────┘
[mor] ℹ 准备配置中, 即将开始编译 [[EMOJI:%F0%9F%91%87]]
        配置名称: alipay_plugin
        编译目标: 支付宝小程序
        编译环境: development
        编译类型: 插件
        编译模式: bundle
        源码类型: alipay
        源码目录: plugin
        编译产物: dist/plugin
        输出目录: dist
[mor] ℹ 已开启缓存, 可通过 --no-cache 关闭
[mor] ℹ 启动文件监听模式
[mor] ℹ 开始编译 ...
[mor] ℹ 依赖分析中 ...
[mor] ℹ 依赖分析完成: 耗时: 12.790667 ms
[mor] ⠼ 正在编译, 进度: 99.00%
[mor] ℹ 模块集成结果:
[mor] ℹ ┌──────────────────────────────────────────────┬────────────────┬──────┬──────┬──────┐
        │ 模块 (共 1 个, 集成终态: 已集成)                 │ 版本           │ 类型  │ 模式  │ 结果 │
        ├──────────────────────────────────────────────┼────────────────┼──────┼──────┼──────┤
        │ alsc-mini-app_king-home-alipay               │ master         │ 宿主  │ 组合 │  ✔   │
        └──────────────────────────────────────────────┴────────────────┴──────┴──────┴──────┘
[mor] ✔ 集成产物目录: dist/miniprogram
[mor] ✔ 编译完成, 耗时: 1544.04675 ms

用小程序 IDE 打开 dist 目录即可预览小程序插件。


MorJS 复杂小程序 SDK 研发模式
MorJS 复杂小程序 命令行说明
温馨提示
下载编程狮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; }