AI + 低代码技术揭秘(六):包结构和 Monorepo

简介: VTJ低代码平台采用monorepo结构,基于PNPM和Lerna进行包管理,实现跨包版本同步与依赖管理。核心包如@vtj/base、@vtj/utils和@vtj/core提供基础类型、工具函数及数据模型。运行时包负责DSL解析、渲染和代码生成,设计器支持可视化开发,本地服务实现文件管理和项目构建。平台通过统一构建系统支持Web、UniApp等多端部署。

本文档概述了 VTJ 低代码平台的 monorepo 结构、软件包依赖关系和构建系统组织。它概述了包的组织方式、它们之间的关系以及编排开发和部署的构建系统。有关核心架构组件的信息,请参阅核心架构

Monorepo 结构概述

VTJ 平台使用 PNPM 工作区和 Lerna 进行包管理,以 monorepo 的形式进行组织。存储库包含组织为逻辑层的包,其工作区依赖项通过 workspace:~ 引用进行管理。monorepo 结构支持跨所有软件包的同步版本控制、共享工具和协调发布。

软件包描述和用途

VTJ 平台由以下主要软件包组成:

版本 描述 依赖
@vtj/base 0.12.40 基础类型和实用程序 reflect-metadata, 加密-js, dayjs, lodash-es
@vtj/utils 0.12.40 常用实用程序函数和帮助程序 @vtj/base、axios、js-cookie
@vtj/core 0.12.40 核心数据模型和引擎抽象 @vtj/base
@vtj/icons 0.12.40 平台的图标组件 @element-plus/icons-vue
@vtj/ui 0.12.40 UI 组件库 @vtj/icons、@vtj/utils、element-plus、sortablejs、vxe 表
@vtj/materials 0.12.40 设计师的组件材料 @vtj/core、@vtj/ui、@vtj/utils、element-plus、ant-design-vue、vant
@vtj/charts 0.12.40 用于数据可视化的图表组件 @vtj/icons、@vtj/utils、echarts
@vtj/renderer 0.12.40 低代码 DSL 的运行时渲染器 @vtj/core、@vtj/utils
@vtj/parser 0.12.40 将 Vue 代码解析为 DSL 模型 @vtj/base、@vtj/core、@babel/parser、@vue/compiler-sfc
@vtj/coder 0.12.40 从 DSL 模型生成 Vue 代码 @vtj/base, @vtj/core, 更漂亮
@vtj/designer 0.12.40 可视化设计环境 @vtj/核心、@vtj/渲染器、@vtj/UI、monaco-editor
@vtj/local 0.12.40 本地开发服务 @vtj/编码器、@vtj/核心、@vtj/节点、@vtj/解析器
@vtj/pro 0.12.40 带 IDE 的专业平台 @vtj/核心、@vtj/designer、@vtj/本地、@vtj/materials、@vtj/renderer
@vtj/web 0.12.40 Web 平台实施 @vtj/图表、@vtj/核心、@vtj/渲染器、@vtj/UI
@vtj/uni 0.12.40 UniApp 支持包 @vtj/core、@vtj/renderer、@vtj/utils
@vtj/uni-app 0.12.40 UniApp 平台实现 @vtj/核心、@vtj/渲染器、@vtj/uni
@vtj/cli 0.12.4 构建和开发工具 vite、vue-tsc、@vitejs/plugin-vue、rollup 插件
@vtj/node 0.12.40 Node.js 实用程序 @vtj/基础、FS-extra、AXIOS

包依赖项和关系

基础层:Core、Base 和 Utils

基础层为整个平台提供了必要的构建块。

@vtj/base

基础包提供基本实用程序、类型和帮助程序函数。它包含:

  • 类型定义
  • 常用接口
  • 加密实用程序
  • 使用 dayjs 进行日期格式化
  • Lodash 实用程序扩展

@vtj/utils

utils 包基于 base 构建,并提供更专业的 Utility 函数:

  • 基于 axios 的 HTTP 请求实用程序
  • Cookie 管理
  • 浏览器存储抽象
  • 常见的帮助程序函数
  • 路径匹配实用程序

@vtj/core

核心包定义了低代码平台的主要数据模型和抽象:

  • 项目模型
  • 块模型
  • 节点模型
  • 状态管理
  • 事件处理
  • 数据绑定

此包是系统的概念核心,它定义了为低代码体验提供支持的域特定语言 (DSL)。

运行时层:Renderer、Parser 和 Coder

@vtj/renderer

renderer 包负责:

  • 在运行时将 DSL 模型转换为 Vue 组件
  • 管理组件 state 和 props
  • 处理事件和数据流
  • 支持动态插槽渲染
  • 为组件通信提供上下文

@vtj/parser

parser 包提供:

  • 将 Vue SFC 文件转换为 DSL 模型
  • 使用 Babel 进行 AST 遍历和分析
  • CSS 解析和提取
  • 使用 Vue 编译器解析模板

@vtj/coder

coder 包处理:

  • 从 DSL 模型生成 Vue 源代码
  • 使用 Prettier 进行格式化
  • 模板生成
  • 脚本和样式生成

设计层:Designer 和本地服务

设计层提供可视化设计环境和本地开发能力。

@vtj/designer

Designer 包包含:

  • 画布和属性面板组件
  • 组件拖放功能
  • 使用 Monaco Editor 的代码编辑器
  • 组件树导航
  • 预览模拟
  • AI 辅助集成

@vtj/local

本地服务包提供:

  • 本地文件系统集成
  • 项目加载和保存
  • 将代码生成到文件
  • 本地开发服务器集成
  • 文件上传处理

平台实施

VTJ 通过专用软件包支持多个平台目标:

@vtj/web

Web 包提供标准的 Web 实现,包括:

  • 特定于 Web 的组件
  • 与 Element Plus 集成
  • 图表集成
  • Web 运行时支持

@vtj/pro

pro 包是完整的 IDE 体验,结合了:

  • 设计师
  • 本地服务
  • 材料
  • 运行时渲染器
  • 平台集成

@vtj/uni 和 @vtj/uni-app

这些 packages 为 UniApp 开发提供支持:

  • UniApp 组件映射
  • H5 和小程序支持
  • UniApp 专用渲染
  • 与 UniApp 框架集成

开发工具

@vtj/cli

CLI 软件包提供开发和构建工具:

  • 项目脚手架
  • 构建配置
  • 开发服务器
  • 测试实用程序
  • 插件支持

@vtj/node

点包提供:

  • 文件系统实用程序
  • 用于服务器端作的 HTTP 实用程序
  • 配置管理
  • 项目模板处理

Monorepo 管理和构建系统

工作区配置

VTJ monorepo 使用带有 Lerna 的 PNPM 工作区进行包管理。工作区配置在 pnpm-lock.yaml 中定义,并使用 workspace:~ 说明符通过工作区依赖项进行管理。

PNPM 工作区结构:

包版本控制策略

所有 VTJ 软件包都遵循同步版本控制策略。大多数软件包的当前版本为 0.12.40,CLI 版本为 0.12.4。此同步通过根 package.json 中定义的 Lerna 命令进行管理。

版本管理命令:

  • lerna version patch --yes - 修补程序版本更新
  • lerna version minor --yes - 次要版本更新
  • lerna version prerelease --yes - 预发行版本
  • pnpm -r publish --access public - 同步发布

构建系统架构

构建系统使用通过 npm 脚本编排的工具组合:

构建工具:

  • Vite - 软件包的主要构建工具
  • Vue-tsc - Vue 组件的 TypeScript 编译
  • Unbuild - Node.js 包的统一构建系统
  • Rollup - 使用插件捆绑模块
  • Terser - JavaScript 缩小
  • Sass - CSS 预处理

构建编排:

该平台使用:

  • 具有同步版本的语义版本控制
  • 使用 PNPM 工作区和 Lerna 进行 Monorepo 管理
  • 跨所有包的协调构建管道
  • 自动化测试和覆盖率报告

在应用程序中使用包

应用程序可以通过多种方式使用 VTJ 软件包:

  1. 使用完整的 PRO 体验:


import { createApp } from 'vue';
import { VtjPro } from '@vtj/pro';
const app = createApp(App);
app.use(VtjPro);
  1. 仅使用 Web 渲染器:

ts

import { createApp } from 'vue';
import { VtjWeb } from '@vtj/web';
const app = createApp(App);
app.use(VtjWeb);
  1. 使用 UniApp 集成:

ts

import { createSSRApp } from 'vue';
import { VtjUniApp } from '@vtj/uni-app';
export function createApp() {
  const app = createSSRApp(App);
  app.use(VtjUniApp);
  return { app };
}

应用实例

该存储库包含几个示例应用程序:

应用程序 描述 使用的软件包
应用程序 标准 Web 应用程序 @vtj/web、@vtj/plugin-ckeditor
优尼 APP UniApp 实施 @vtj/uni-app、@vtj/renderer
H5 系列 移动 H5 应用程序 @vtj/h5、@vtj/渲染器
外延 浏览器扩展 @vtj/专业版、@vtj/Web
材料 材质编辑器 @vtj/专业版、@vtj/Web
插件 插件开发 @vtj/专业版、@vtj/Web
LCDP 系列 在线演示 @vtj/网页、@vtj/专业版

这些示例展示了 VTJ 支持的不同集成方法和平台目标。


源码仓库

https://gitee.com/newgateway/vtj



相关文章
|
11天前
|
人工智能 文字识别 自然语言处理
有了AI叠buff,低代码行业在沉寂了一段时间后,好似又活过来了?
曾被质疑“难堪大用”的低代码平台,在AI驱动下正焕发新生。借助大模型,AI可理解自然语言、自动生成应用、智能补全数据、解析文档图表,大幅提升开发效率与业务响应速度。从“拖拉拽”到“你说我做”,低代码已迈入智能化时代,加速企业数字化转型。
|
12天前
|
人工智能 小程序 Java
电子班牌管理系统源代码,基于AI人脸识别技术的智能电子班牌云平台解决方案
电子班牌管理系统源码,基于AI人脸识别的智慧校园云平台,支持SaaS架构,涵盖管理端、小程序与安卓班牌端。集成考勤、课表、通知、门禁等功能,提供多模式展示与教务联动,助力校园智能化管理。
71 0
|
14天前
|
机器学习/深度学习 人工智能 自然语言处理
用AI守护迷途少年:戒毒所青少年心理疏导系统的技术实践
在戒毒所中,青少年心理更脆弱却难言苦痛。我们打造AI心理疏导系统,以多模态情绪识别、个性化疏导引擎与隐私优先架构,用技术补位心理支持,主动发现风险,精准干预,守护迷途少年重拾希望。(239字)
|
16天前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
|
18天前
|
人工智能 搜索推荐 机器人
07_大模型未来趋势:2025年AI技术前沿展望
2025年,人工智能技术正站在一个新的历史节点上。经过过去几年的爆发式发展,大语言模型(LLM)已从实验室走向各行各业,成为推动数字化转型的核心力量
|
24天前
|
机器学习/深度学习 人工智能 数据安全/隐私保护
阿里云 Qwen3 全栈 AI 模型:技术解析、开发者实操指南与 100 万企业落地案例
阿里云发布Qwen3全栈AI体系,推出Qwen3-Max、Qwen3-Next等七大模型,性能全球领先,开源生态超6亿次下载。支持百万级上下文、多模态理解,训练成本降90%,助力企业高效落地AI。覆盖制造、金融、创作等场景,提供无代码与代码级开发工具,共建超级AI云生态。
388 6
|
25天前
|
人工智能 自然语言处理 JavaScript
VTJ.PRO v0.13.29震撼发布!AI低代码引擎正式接入Qwen3-Coder-Plus,开发效率飙升!
VTJ.PRO v0.13.29 集成阿里云Qwen3-Coder-Plus大模型,实现自然语言生成Vue组件、源码双向同步与智能调试,大幅提升开发效率,推动低代码迈向智能化新时代。
130 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
AIGC技术深度解析:生成式AI的革命性突破与产业应用实战
蒋星熠Jaxonic,AI技术探索者,深耕生成式AI领域。本文系统解析AIGC核心技术,涵盖Transformer架构、主流模型对比与实战应用,分享文本生成、图像创作等场景的实践经验,展望技术趋势与产业前景,助力开发者构建完整认知体系,共赴AI原生时代。
|
1月前
|
存储 消息中间件 人工智能
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
78 3
|
1月前
|
机器学习/深度学习 人工智能 资源调度
嵌入式AI领域关键技术的理论基础
本内容系统讲解嵌入式AI领域关键技术的数学理论基础,涵盖神经网络量化、剪枝、知识蒸馏与架构搜索的核心原理。深入探讨量化中的信息论与优化方法、稀疏网络的数学建模、蒸馏中的信息传递机制,以及神经架构搜索的优化框架,为在资源受限环境下实现高效AI推理提供理论支撑。
89 5