VTJ.PRO 在线应用开发平台的构建与发布脚本

张开发
2026/4/9 16:53:12 15 分钟阅读

分享文章

VTJ.PRO 在线应用开发平台的构建与发布脚本
构建与发布脚本本文档详细介绍了位于scripts/目录下的自动化脚本。这些工具用于管理 VTJ.PRO 平台的整个生命周期包括项目模板打包、环境清理以及为“完整版”和“云版”两种部署变体生成可用于生产的发布产物。发布变体完整版 vs. 云版构建系统区分了两种主要的发行类型以适应不同的部署场景。两种变体都会被打包成ZIP压缩包存放在_releases目录下该目录已被版本控制系统排除。变体用途主要特征完整版 (vtj-pro-full)自托管、离线或独立部署包含所有源代码、后端服务、前端资源及本地依赖。云版 (vtj-pro-cloud)托管式或云原生部署针对特定基础设施如 OSS 或共享服务由外部管理的环境进行了优化。脚本: publish.mjspublish.mjs脚本是主要的发布包生成器。它负责从单体仓库中收集文件应用排除规则移除开发工件并将结果压缩成带版本号的ZIP文件。实现细节该脚本使用archiver进行压缩使用fs-extra进行文件系统操作。它定义了一组全局排除规则以确保发布的产物轻量且安全。关键排除规则打包过程中会忽略以下模式开发元数据:.git,.vscode,.idea,.history构建产物:node_modules,dist(生产环境的前端/后端输出除外),_releases临时文件:*.log,package-lock.json,pnpm-lock.yaml环境特定文件:.env.local,.DS_Store发布工作流逻辑脚本遵循线性执行路径来构建发布包版本解析从根目录的package.json中读取当前版本。目录准备确保_releases目录存在。归档初始化为目标ZIP文件例如vtj-pro-full-v1.0.0.zip创建一个写入流。文件聚合递归遍历目录树应用ignore过滤器跳过仅用于开发的文件。发布流程下图展示了从单体仓库源代码到最终发布产物的数据流。发布打包架构脚本: template.mjstemplate.mjs脚本负责打包位于templates/目录下的入门项目模板Web、H5 和 UniApp。这些模板对于低代码引擎初始化新用户项目至关重要。实现与数据流该脚本执行两个主要功能内部同步打包模板并将其放置到backend/zip/目录下。这使得 NestJS 后端可以在项目创建过程中通过TemplateModule提供这些模板。外部发布将模板打包到根目录下的zip/目录中用于手动分发或 CLI 工具使用。模板打包流程脚本: clean.mjsclean.mjs脚本提供了一个用于重置开发环境的实用工具。它的目标是那些在构建和执行过程中经常被填充但不应持久存在的目录。目标目录该脚本会以编程方式删除以下路径node_modules/根目录及各个包的依赖。dist/前端和后端的编译输出。_releases/先前生成的发布包。uploadfiles/上传资产的临时或本地存储。配置与环境这些脚本依赖于项目的工作区配置以便在不同的环境中正确运行。工作区依赖提升该项目使用pnpm并通过.npmrc文件定义了特定的依赖提升规则以确保构建脚本能够访问必要的依赖项如archiver或fs-extra而无需在每个子包中都安装它们。配置项值用途hoisttrue启用依赖提升将依赖提升到根目录的node_modules。node-linkerhoisted使用扁平的node_modules结构以兼容标准的 Node.js 脚本。registryhttps://registry.npmmirror.com配置镜像源以加快构建过程中的依赖解析速度。参考资料官网文档https://vtj.pro/在线平台https://app.vtj.pro/开源仓库https://gitee.com/newgateway/vtj

更多文章