简介

LowCodeEngine​ 是阿里巴巴开源的一套面向扩展设计的企业级低代码技术体系,提供了一个功能强大、可扩展的低代码开发引擎。它从企业级低代码平台中提取出扩展导向的内核引擎,追求最小内核和最强生态的设计理念,为开发者提供构建低代码平台的基础能力。

🔗 ​GitHub地址​:

https://github.com/alibaba/lowcode-engine

🚀 ​核心价值​:

企业级低代码 · 可扩展架构 · 强大生态 · 开源免费

项目背景​:

  • 低代码趋势​:响应企业数字化转型对低代码开发的需求

  • 平台碎片化​:解决各业务线低代码平台重复建设问题

  • 标准化需求​:提供统一的低代码开发标准和协议

  • 生态建设​:构建开放的低代码工具和物料生态

技术特色​:

  • 🏢 ​企业级​:经过阿里巴巴大规模业务验证

  • 🔧 ​可扩展​:插件化架构,支持深度定制

  • 🌐 ​生态丰富​:完整的物料、设置器、插件生态

  • 📋 ​协议标准​:统一的低代码协议和规范

  • 🛡 ​类型安全​:TypeScript开发,完整类型定义

设计理念​:

  • 最小内核​:核心引擎保持最小化和稳定性

  • 最强生态​:通过生态扩展提供丰富功能

  • 开放标准​:制定和遵循开放协议标准

  • 企业就绪​:满足企业级应用的需求和标准

  • 社区驱动​:依托社区力量持续发展和完善


主要功能

1. ​核心功能体系

LowCodeEngine提供了一套完整的低代码开发解决方案,专注于可扩展性和企业级应用。

引擎核心​:

  • 可视化编辑​:拖拽式界面设计和布局

  • 组件管理​:组件库管理和使用

  • 数据绑定​:可视化数据绑定和状态管理

  • 逻辑编排​:可视化逻辑流程编排

  • 页面管理​:多页面管理和导航配置

生态体系​:

  • 物料系统​:丰富的UI组件和业务组件

  • 设置器系统​:属性设置和表单配置工具

  • 插件系统​:功能扩展和集成插件

  • 模板系统​:预置模板和自定义模板

  • 工具链​:完整的开发和调试工具

协议标准​:

  • 组件协议​:统一的组件描述和交互协议

  • 物料协议​:物料开发和使用标准

  • 设置器协议​:属性设置器接口标准

  • 插件协议​:插件开发和集成规范

  • 数据协议​:数据模型和绑定协议

企业特性​:

  • 多租户​:支持多租户部署和管理

  • 权限控制​:细粒度的权限管理系统

  • 审计日志​:完整的操作审计跟踪

  • 高性能​:优化的大规模应用性能

  • 安全合规​:企业级安全标准和合规性

2. ​功能详情

可视化开发​:

设计器功能:
- 画布编辑: 可视化拖拽布局
- 组件树: 层级结构管理和导航
- 属性面板: 属性设置和样式配置
- 事件面板: 事件处理函数绑定
- 数据面板: 数据模型和管理

组件操作:
- 拖拽添加: 从组件库拖拽添加组件
- 复制粘贴: 组件复制和跨页面粘贴
- 对齐分布: 智能对齐和分布工具
- 图层管理: 图层顺序和可见性管理
- 批量操作: 多组件批量操作

预览调试:
- 实时预览: 实时效果预览和调试
- 响应式预览: 多设备尺寸预览
- 交互调试: 交互行为调试和测试
- 性能分析: 性能分析和优化建议

物料生态​:

组件类型:
- 基础组件: 按钮、输入框、表格等基础UI组件
- 布局组件: 容器、栅格、卡片等布局组件
- 业务组件: 特定业务场景的专用组件
- 图表组件: 数据可视化图表组件
- 自定义组件: 用户自定义扩展组件

物料来源:
- 官方物料: 阿里巴巴官方提供的物料库
- 社区物料: 社区贡献的第三方物料
- 企业物料: 企业内部私有物料库
- 自定义物料: 用户自行开发的物料

物料管理:
- 物料市场: 物料发现和安装
- 版本管理: 物料版本管理和更新
- 依赖管理: 物料依赖关系管理
- 质量检测: 物料质量检测和验证

扩展系统​:

插件类型:
- 设计器插件: 扩展设计器功能
- 运行时插件: 扩展运行时功能
- 设置器插件: 扩展属性设置功能
- 物料插件: 扩展物料管理功能
- 工具插件: 扩展开发工具功能

扩展能力:
- 自定义组件: 开发和使用自定义组件
- 自定义设置器: 开发特定属性的设置器
- 自定义插件: 开发功能扩展插件
- 自定义模板: 创建和使用项目模板
- 自定义主题: 定制化主题和样式

API体系:
- 设计器API: 设计器操作和控制API
- 运行时API: 运行时环境和交互API
- 物料API: 物料管理和使用API
- 插件API: 插件开发和集成API
- 工具链API: 开发工具和调试API

工具链​:

开发工具:
- CLI工具: 命令行创建和管理项目
- 调试工具: 可视化调试和性能分析
- 构建工具: 项目构建和打包工具
- 部署工具: 应用部署和发布工具
- 监控工具: 运行监控和错误追踪

质量保障:
- 代码检测: 代码质量和规范检查
- 测试工具: 单元测试和集成测试
- 性能测试: 性能基准和负载测试
- 安全扫描: 安全漏洞和风险扫描
- 兼容性测试: 浏览器和设备兼容性

协作工具:
- 版本控制: 项目版本管理和协作
- 团队管理: 团队成员和权限管理
- 文档生成: 自动文档生成和维护
- 项目模板: 团队项目模板和规范

3. ​技术规格

系统架构​:

核心引擎: TypeScript + React
设计器: 基于React的可视化编辑器
渲染器: React渲染引擎(支持其他框架扩展)
构建工具: Webpack + Babel + Lerna
包管理: npm + Lerna多包管理

协议支持​:

组件协议: 《低代码引擎基础搭建协议规范》
物料协议: 《低代码引擎物料协议规范》
设置器协议: 属性设置器接口标准
插件协议: 插件开发和集成规范
数据协议: 数据模型和绑定协议

兼容性​:

浏览器: Chrome >= 80, Edge >= 80, Safari(最近2版本), Firefox(最近2版本)
框架: React为主, 支持Vue/Angular扩展
设备: 桌面端为主, 支持移动端适配
环境: Node.js 14+, 现代浏览器环境

性能指标​:

加载性能: 引擎核心<100KB(gzip)
渲染性能: 支持1000+组件复杂页面
内存占用: 优化内存使用和垃圾回收
响应时间: 操作响应<100ms
扩展性能: 支持100+插件同时运行

安装与配置

1. ​环境准备

系统要求​:

操作系统: Windows, macOS, Linux
Node.js: 14.0+ (推荐16.0+)
内存: 8GB+ RAM (推荐16GB)
存储: 1GB+ 可用空间
网络: 稳定的互联网连接

开发环境​:

  • 代码编辑器​:VS Code推荐

  • 浏览器​:Chrome推荐用于开发

  • Git​:版本控制工具

  • 包管理器​:npm、yarn或pnpm

2. ​安装步骤

CDN方式(推荐初学者)​​:

<!-- 在HTML中引入CDN资源 -->
<script src="https://unpkg.com/@alilc/lowcode-engine@1.0.18/dist/js/engine-core.js"></script>
<script src="https://unpkg.com/@alilc/lowcode-react-simulator-renderer@1.0.18/dist/js/react-simulator-renderer.js"></script>

<!-- 使用全局变量 -->
<script>
const { init, skeleton } = window.AliLowCodeEngine;
// 初始化引擎
init(document.getElementById('lce-container'));
</script>

NPM安装(推荐开发)​​:

# 创建新项目
npx create-lowcode-app my-app

# 或手动安装
npm install @alilc/lowcode-engine --save-dev
npm install @alilc/lowcode-react-simulator-renderer --save-dev

# 配置externals(webpack配置)
module.exports = {
  externals: {
    '@alilc/lowcode-engine': 'window.AliLowCodeEngine',
    '@alilc/lowcode-engine-ext': 'window.AliLowCodeEngineExt'
  }
};

源码开发​:

# 克隆仓库
git clone https://github.com/alibaba/lowcode-engine.git
cd lowcode-engine

# 安装依赖
npm install

# 初始化项目
npm run setup

# 启动开发服务器
npm start

# 构建生产版本
npm run build

Docker部署​:

# 使用Docker运行
docker run -p 8080:80 alibaba/lowcode-engine

# 或使用Docker Compose
git clone https://github.com/alibaba/lowcode-engine.git
cd lowcode-engine
docker-compose up -d

3. ​配置说明

基础配置​:

// 引擎初始化配置
const engineOptions = {
  locale: 'zh-CN',
  enableCondition: true,
  enableCanvasLock: true,
  supportVariableGlobally: true,
  device: 'default',
  simulatorUrl: [
    'https://unpkg.com/@alilc/lowcode-react-simulator-renderer@1.0.18/dist/js/react-simulator-renderer.js'
  ]
};

// 设计器配置
const designerOptions = {
  theme: 'light',
  device: 'default',
  plugins: [],
  shell: {
    // 设计器外壳配置
  }
};

物料配置​:

{
  "packages": [
    {
      "package": "@alilc/lowcode-sample-material",
      "version": "1.0.0",
      "library": "LowCodeSampleMaterial",
      "urls": [
        "https://unpkg.com/@alilc/lowcode-sample-material@1.0.0/dist/index.js"
      ],
      "editUrls": [
        "https://unpkg.com/@alilc/lowcode-sample-material@1.0.0/dist/edit.js"
      ]
    }
  ],
  "components": [
    {
      "componentName": "SampleComponent",
      "title": "示例组件",
      "docUrl": "",
      "screenshot": "",
      "devMode": "proCode",
      "npm": {
        "package": "@alilc/lowcode-sample-material",
        "version": "1.0.0"
      }
    }
  ]
}

插件配置​:

// 插件配置示例
const plugins = [
  PluginRegistry,          // 插件注册表
  MaterialPlugin,          // 物料管理插件
  SetterRegistry,          // 设置器注册插件
  EventPlugin,             // 事件管理插件
  DataSourcePlugin,        // 数据源插件
  UndoRedoPlugin,          // 撤销重做插件
  ZhEnPlugin,              // 中英文切换插件
  DefaultSettersRegistry,  // 默认设置器
  LoggingPlugin,           // 日志插件
  PreferencesRegistry,     // 偏好设置插件
];

构建配置​:

// webpack.config.js
module.exports = {
  externals: {
    '@alilc/lowcode-engine': 'window.AliLowCodeEngine',
    '@alilc/lowcode-engine-ext': 'window.AliLowCodeEngineExt',
    'react': 'window.React',
    'react-dom': 'window.ReactDOM'
  },
  devServer: {
    port: 5555,
    proxy: {
      '/api': 'http://localhost:7001'
    }
  }
};

使用指南

1. ​基本工作流

使用LowCodeEngine的基本流程包括:初始化引擎 → 配置物料 → 设计页面 → 预览调试 → 发布部署。整个过程设计为直观简单,开发者可以快速构建低代码平台。

2. ​基本使用

引擎初始化​:

import { init, skeleton } from '@alilc/lowcode-engine';

// 初始化设计器
async function initializeDesigner() {
  // 准备设计器资源
  await prepareResources();
  
  // 初始化设计器
  await init(document.getElementById('lce-container'), {
    locale: 'zh-CN',
    enableCondition: true,
    enableCanvasLock: true,
    simulatorUrl: [
      'https://unpkg.com/@alilc/lowcode-react-simulator-renderer@1.0.18/dist/js/react-simulator-renderer.js'
    ]
  });
  
  // 添加设计器组件
  skeleton.add({
    area: 'topArea',
    type: 'Widget',
    name: 'logo',
    content: LogoComponent,
    props: {
      align: 'left',
      width: 100,
    },
  });
}

物料注册​:

// 注册物料包
const materialPkgs = await new Promise((resolve, reject) => {
  $.ajax({
    url: '/api/materials',
    success: (data) => resolve(data),
    error: (err) => reject(err)
  });
});

// 设置物料
await project.setI18n(materialPkgs.i18n);
await project.setSchema(schema);
await project.open();

页面设计​:

// 创建新页面
const pageSchema = {
  componentName: 'Page',
  props: {
    componentName: 'Page',
    css: {
      width: '100%',
      height: '100%',
    },
  },
  children: [
    {
      componentName: 'Div',
      props: {
        componentName: 'Div',
        css: {
          padding: '20px',
        },
      },
      children: [
        {
          componentName: 'Button',
          props: {
            type: 'primary',
            children: '点击我',
          },
        }
      ]
    }
  ]
};

// 保存页面设计
await project.saveSchema(pageSchema);

预览调试​:

// 实时预览
const preview = await project.openPreview();

// 获取页面HTML
const html = await project.getHtml();

// 导出项目
const exportResult = await project.export();

3. ​高级用法

自定义组件开发​:

// 开发自定义组件
import { createComponent } from '@alilc/lowcode-engine';

const MyCustomComponent = createComponent({
  // 组件配置
  componentName: 'MyCustomComponent',
  title: '自定义组件',
  props: [
    {
      name: 'title',
      propType: 'string',
      defaultValue: '默认标题',
    }
  ],
  
  // 组件实现
  render({ title }) {
    return (
      <div className="custom-component">
        <h3>{title}</h3>
        <p>这是一个自定义组件</p>
      </div>
    );
  }
});

// 注册到引擎
registerComponent(MyCustomComponent);

插件开发​:

// 开发自定义插件
class MyCustomPlugin extends Plugin {
  constructor() {
    super({
      name: 'MyCustomPlugin',
      dependencies: [],
    });
  }
  
  async init() {
    // 插件初始化
    this.addPanel({
      type: 'panel',
      name: 'my-panel',
      content: MyPanelComponent,
      props: {
        title: '自定义面板',
      },
    });
  }
  
  async destroy() {
    // 插件销毁
  }
}

// 注册插件
registerPlugin(MyCustomPlugin);

API集成​:

// 与后端API集成
class BackendService {
  async saveSchema(schema) {
    const response = await fetch('/api/schema/save', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(schema),
    });
    return response.json();
  }
  
  async loadSchema(schemaId) {
    const response = await fetch(`/api/schema/load/${schemaId}`);
    return response.json();
  }
}

// 在引擎中使用
const backendService = new BackendService();
await backendService.saveSchema(currentSchema);

主题定制​:

// 自定义主题
const customTheme = {
  colors: {
    primary: '#1890ff',
    secondary: '#52c41a',
    danger: '#ff4d4f',
  },
  spacing: {
    small: '8px',
    medium: '16px',
    large: '24px',
  },
  components: {
    Button: {
      borderRadius: '6px',
    },
    Input: {
      borderColor: '#d9d9d9',
    },
  },
};

// 应用主题
applyTheme(customTheme);

应用场景实例

案例1:企业级中后台应用开发

场景​:企业需要快速开发大量中后台管理系统

解决方案​:使用LowCodeEngine构建企业中后台低代码平台。

实施方法​:

# 搭建中后台低代码平台
1. 基于LowCodeEngine核心引擎
2. 集成企业UI组件库和业务组件
3. 开发中后台常用模板和页面
4. 配置数据源和API连接
5. 部署到企业私有环境

# 典型中后台功能
- 用户管理: CRUD页面和权限配置
- 数据报表: 图表和数据可视化
- 工作流: 审批流程和业务流转
- 系统配置: 参数配置和菜单管理
- 日志审计: 操作日志和审计跟踪

中后台特性​:

  • 表单密集​:大量表单和表格页面

  • 数据驱动​:基于数据的管理和操作

  • 权限复杂​:复杂的角色和权限体系

  • 流程规范​:标准化的工作流程

  • 集成需求​:多系统集成和API调用

企业价值​:

  • 开发效率​:开发效率提升5-10倍

  • 一致性​:界面和交互规范统一

  • 维护成本​:大幅降低维护成本

  • 质量保证​:标准化组件保证质量

  • 快速迭代​:业务需求快速响应

案例2:业务中台能力输出

场景​:大型企业需要将业务能力输出给不同团队

解决方案​:使用LowCodeEngine构建业务中台低代码平台。

中台建设​:

# 业务中台架构
1. 基础引擎层: LowCodeEngine核心能力
2. 能力中心层: 各业务领域能力抽象
3. 组件物料层: 业务组件和模板库
4. 工具平台层: 开发和管理工具
5. 接入应用层: 各业务线应用

# 能力输出方式
- 组件输出: 业务组件和模板
- 方案输出: 完整业务解决方案
- 平台输出: 低代码平台能力
- 服务输出: API和服务能力
- 生态输出: 开发规范和标准

中台能力​:

  • 标准化​:业务能力和接口标准化

  • 可复用​:能力复用和组合使用

  • 可扩展​:能力持续扩展和演进

  • 可运营​:能力运营和效果评估

  • 开放化​:开放给内部和外部团队

组织价值​:

  • 能力沉淀​:业务能力沉淀和复用

  • 效率提升​:整体研发效率提升

  • 创新加速​:业务创新和试错加速

  • 成本优化​:资源利用和成本优化

  • 生态建设​:内外开发生态建设

案例3:跨平台应用开发

场景​:需要开发跨Web、移动端、小程序的业务应用

解决方案​:使用LowCodeEngine构建跨平台低代码开发体系。

跨平台方案​:

# 跨平台架构设计
1. 统一引擎层: LowCodeEngine核心
2. 多端渲染层: Web、小程序、App渲染器
3. 适配组件层: 多端适配的组件库
4. 构建发布层: 多端构建和发布工具
5. 运行时层: 多端运行时环境

# 开发工作流
1. 可视化设计: 在设计器中设计页面
2. 多端预览: 实时预览多端效果
3. 差异调整: 调整各端差异和特性
4. 分别构建: 构建各端应用包
5. 分别发布: 发布到各端平台

跨平台特性​:

  • 一次开发​:一套设计多端使用

  • 原生体验​:各端原生体验和性能

  • 平台特性​:支持各端特有能力和API

  • 差异处理​:处理各端差异和兼容性

  • 统一管理​:统一项目管理和协作

业务价值​:

  • 覆盖全面​:覆盖所有终端平台用户

  • 体验一致​:多端一致的用户体验

  • 效率极致​:最大化开发效率提升

  • 成本最低​:最低的多端开发成本

  • 迭代快速​:快速同步多端功能迭代


总结

LowCodeEngine作为一个企业级的低代码开发引擎,通过其强大的扩展能力、丰富的生态体系和标准化的协议,为企业和开发者提供了构建低代码平台的完整解决方案。其开源特性和阿里巴巴背书,使其成为企业低代码平台建设的理想选择。

核心优势​:

  • 🏢 ​企业级​:经过阿里巴巴大规模业务验证

  • 🔧 ​可扩展​:插件化架构支持深度定制

  • 🌐 ​生态丰富​:完整的物料和工具生态

  • 📋 ​标准开放​:统一的协议和标准规范

  • 🛡 ​稳定可靠​:生产环境验证的稳定性

适用场景​:

  • 企业中后台应用开发

  • 业务中台能力建设

  • 跨平台应用开发

  • 内部工具开发平台

  • ISV产品开发和交付

技术特色​:

  • 现代架构​:基于TypeScript和React的现代技术栈

  • 协议标准​:完整的低代码协议和规范体系

  • 工具链​:完整的开发和运维工具链

  • 性能优化​:大规模应用性能优化

  • 社区活跃​:活跃的开源社区和生态系统

🌟 ​GitHub地址​:

https://github.com/alibaba/lowcode-engine

🚀 ​快速开始​:

CDN引入或NPM安装

📚 ​学习资源​:

详细文档和示例项目

立即使用LowCodeEngine,构建您的低代码平台!​

最佳实践建议​:

  • 🏢 ​企业用户​:基于引擎构建内部低代码平台

  • 🛠 ​开发者​:开发自定义组件和插件

  • 📦 ​ISV厂商​:基于引擎开发商业化产品

  • 🎓 ​教育机构​:用于低代码教学和研究

  • 🤝 ​社区贡献​:参与社区建设和贡献

注意事项​:

  • ⚠️ ​浏览器兼容​:注意浏览器兼容性要求

  • 🔧 ​环境配置​:正确配置externals和CDN

  • 📋 ​协议遵循​:遵循低代码相关协议规范

  • 🔒 ​安全考虑​:生产环境的安全配置和审查

  • 📊 ​性能监控​:监控大规模应用的性能表现

LowCodeEngine持续演进和发展,欢迎用户反馈和贡献,共同打造更好的低代码开发生态!

更多推荐