本文档概述了 VTJ 低代码平台的 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 |
基础层为整个平台提供了必要的构建块。
基础包提供基本实用程序、类型和帮助程序函数。它包含:
utils 包基于 base 构建,并提供更专业的 Utility 函数:
核心包定义了低代码平台的主要数据模型和抽象:
此包是系统的概念核心,它定义了为低代码体验提供支持的域特定语言 (DSL)。
renderer 包负责:
parser 包提供:
coder 包处理:
设计层提供可视化设计环境和本地开发能力。
Designer 包包含:
本地服务包提供:
VTJ 通过专用软件包支持多个平台目标:
Web 包提供标准的 Web 实现,包括:
pro 包是完整的 IDE 体验,结合了:
这些 packages 为 UniApp 开发提供支持:
CLI 软件包提供开发和构建工具:
点包提供:
VTJ monorepo 使用带有 Lerna 的 PNPM 工作区进行包管理。工作区配置在 pnpm-lock.yaml 中定义,并使用 workspace:~ 说明符通过工作区依赖项进行管理。
PNPM 工作区结构:
所有 VTJ 软件包都遵循同步版本控制策略。大多数软件包的当前版本为 0.12.40,CLI 版本为 0.12.4。此同步通过根 package.json 中定义的 Lerna 命令进行管理。
版本管理命令:
构建系统使用通过 npm 脚本编排的工具组合:
构建工具:
构建编排:
该平台使用:
应用程序可以通过多种方式使用 VTJ 软件包:
ts
import { createApp } from 'vue';
import { VtjPro } from '@vtj/pro';
const app = createApp(App);
app.use(VtjPro);
ts
import { createApp } from 'vue';
import { VtjWeb } from '@vtj/web';
const app = createApp(App);
app.use(VtjWeb);
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 支持的不同集成方法和平台目标。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。