MorJS Documentation

repository·main·Indexed 24 days ago

https://github.com/eleme/morjs

An extensible multi-terminal development framework that allows developers to write Mini-programs once using native DSLs (such as WeChat or Alipay) and compile them for multiple platforms, including WeChat, Alipay, Baidu, ByteDance, DingTalk, Kuaishou, QQ, Taobao, and Web (H5). It features a complete plugin system for the entire lifecycle from source code to build artifacts, supporting ts, less/scss, and jsonc/json5.

Tokens
45.6K
Snippets
74
Records
294
Agent score
82%

What's inside MorJS

  1. What is MorJS

    main

    MorJS is an extensible multi-terminal development framework based on Mini-program DSLs (such as WeChat or Alipay). It allows developers to write a single codebase using a native Mini-program DSL and then compile it into various outputs that run on multiple platforms, including:

    • WeChat
    • Alipay
    • Baidu
    • ByteDance (Douyin)
    • DingTalk
    • Kuaishou
    • QQ
    • Taobao
    • Web (H5)

    MorJS uses a plugin system that covers the entire lifecycle from source code to build artifacts, enabling support for pages, components, complex subpackages, and plugins.

  2. Core Capabilities of MorJS

    main

    MorJS provides three main pillars of capability:

    1. Ease of Use

    • DSL Support: Use WeChat or Alipay Mini-program DSLs without additional learning costs.
    • Multi-terminal Support: Convert one codebase into various Mini-program platforms and Web applications.
    • Fast Integration: Quickly integrate into existing projects by adding two packages and a configuration file.

    2. Standardization

    • Out-of-the-box: Includes scaffolding, building, analysis, and multi-terminal compilation capabilities.
    • Consistent Experience: Uses a combination of compile-time and runtime transformations to bridge platform differences.
    • Form Transformation: Supports converting between different project forms, such as Mini-programs, subpackages, and plugins.

    3. Flexibility

    • Extensibility: Features a complete plugin system for all lifecycles and internal functions.
    • Type Support: Supports standard Mini-program files as well as ts, less/scss, and jsonc/json5.
    • On-demand Adaptation: Offers different integration levels (compilation only, compilation + page injection, or complex Mini-program integration) depending on project scale.