MCPcopy Index your code
hub / github.com/eleme/morjs

github.com/eleme/morjs @v1.0.113

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.113 ↗ · + Follow
4,115 symbols 9,363 edges 1,056 files 412 documented · 10%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

NPM Version License PRs Welcome CLA assistant Discussions

MorJS

Mor (发音为 /mɔːr/,类似 more),是饿了么开发的一款基于小程序 DSL 的,可扩展的多端研发框架,使用小程序原生 DSL 构建,使用者只需书写一套(微信或支付宝)小程序,就可以通过 Mor 的转端编译能力,将源码分别编译出可以在不同端(微信/支付宝/百度/字节/钉钉/快手/QQ/淘宝/Web…)运行的产物。

MorJS 以多端编译为基础,配以面向全生命周期的插件体系,覆盖从源码到构建产物的每个阶段,支持各类功能扩展和业务需求,无论是基础的页面和组件还是复杂的分包和插件,MorJS 都可以胜任,帮助你高效地开发多端小程序。

📚 快速上手 MorJS →

优势与核心能力

Mor 是一套基于小程序 DSL (支付宝或微信) 的框架。他的易用性、标准化和灵活性,使得开发者能更好地专注于业务,让开发成本,招聘、管理、测试各方面成本都大幅下降,提高开发者的工作效率。

  • ⭐️ 易用性
  • 💎 DSL 支持:可使用微信小程序 DSL 或 支付宝小程序 DSL 编写小程序,无额外使用成本;
  • 🌴 多端支持:支持将一套小程序转换为各类小程序平台及 Web 应用, 节省双倍人力;
  • 🚀 快速接入:仅需引入两个包,增加一个配置文件,即可简单快速接入到现有小程序项目;
  • 🌟 标准化
  • 📦 开箱即用:内置了脚手架、构建、分析、多端编译等完整研发能力,仅需一个依赖即可上手开发;
  • 🌈 表现一致:通过编译时+运行时抹平多端差异性,让不同平台的小程序获得一致的用户体验;
  • 🖇 形态转换:支持同一个项目的不同的形态,允许小程序、分包、插件不同形态之间的相互转换;
  • 灵活性
  • 🎉 方便扩展:Mor 将完备的生命周期和内部功能插件化,使用插件(集)以满足功能和垂直域的分层需求;
  • 📚 类型支持:除小程序标准文件类型外,还支持 ts、less/scss、jsonc/json5 等多种文件类型;
  • 🧰 按需适配:可根据需求选择性接入适配能力,小项目仅需编译功能,中等项目可结合编译和页面注入能力,大型项目推荐使用复杂小程序集成能力;

示例

以下是饿了么-美食外卖频道在微信、支付宝、抖音小程序及 H5 中的表现。

部分使用案例

贡献

参见 贡献指南

社区

参见 社区指南

核心成员

核心成员是在 MorJS 相关问题、BUG 修复、功能增强、新特性添加等方便投入大量的时间和精力的社区贡献者。

许可证

MIT

Extension points exported contracts — how you extend this code

IFormComponent (Interface)
(no doc) [6 implementers]
packages/runtime-web/src/components/src/form/IFormComponent.ts
Plugin (Interface)
(no doc) [69 implementers]
packages/takin/src/plugin.ts
MorPlugin (Interface)
(no doc) [4 implementers]
packages/runtime-base/src/hooks.ts
ISubPackageConfig (Interface)
* 分包配置
packages/utils/src/types.ts
TransformRules (Interface)
* 转换配置定义
packages/plugin-compiler-alipay/src/plugins/ConfigParserPlugin.ts
MorComponentInternalMethods (Interface)
* Mor 内部方法
packages/core/src/component.ts
ITransformOutput (Interface)
* ts / js 转换输出结果
packages/plugin-compiler/src/transformers/scriptTransformer.ts
IFactoryFunction (Interface)
* 工厂函数
packages/api/src/api.ts

Core symbols most depended-on inside this repo

log
called by 261
packages/plugin-mocker/src/runtimes/attach.ts
Page
called by 252
packages/runtime-web/src/runtime/public/index.ts
map
called by 228
packages/runtime-web/src/runtime/dsl/for.ts
tap
called by 227
packages/runtime-base/src/hooks.ts
error
called by 113
packages/takin/src/logger/index.ts
call
called by 104
packages/runtime-base/src/hooks.ts
debug
called by 93
packages/takin/src/logger/index.ts
warn
called by 90
packages/takin/src/logger/index.ts

Shape

Function 2,255
Method 1,260
Class 403
Interface 182
Enum 15

Languages

TypeScript100%

Modules by API surface

packages/plugin-compiler/src/entries/index.ts61 symbols
packages/plugin-compiler-web/src/compiler/core/axml2/ast/types.ts58 symbols
packages/runtime-web/src/components/src/api/ui/map/map.ts55 symbols
packages/takin/src/logger/index.ts47 symbols
packages/utils/src/moduleGraph.ts41 symbols
packages/runtime-web/src/runtime/public/component.tsx33 symbols
packages/runtime-web/src/api/media/audio/Audio.ts33 symbols
examples/alipay/src/page/component/modal/modal.js33 symbols
packages/takin/src/config.ts32 symbols
packages/runtime-web/src/components/src/api/ui/datePicker/picker/utils.ts31 symbols
packages/runtime-web/src/components/src/api/ui/map/index.ts30 symbols
packages/plugin-composer/src/compose.ts30 symbols

For agents

$ claude mcp add morjs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact