# Rex.SmomPublish **Repository Path**: dw12/Rex.SmomPublish ## Basic Information - **Project Name**: Rex.SmomPublish - **Description**: SMOM平台发布工具!!! - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-05-07 - **Last Updated**: 2026-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

tauri vue typescript vite element plus rust license

SMOM 平台发布工具

基于 Tauri 2 + Vue 3 + TypeScript 构建的跨平台桌面应用

*** ## 📖 目录 - [前言](#-前言) - [项目介绍](#-项目介绍) - [技术选型](#-技术选型) - [目录结构](#-目录结构) - [环境准备](#-环境准备) - [快速开始](#-快速开始) - [功能特性](#-功能特性) - [功能截图](#-功能截图) - [常见问题](#-常见问题) - [鸣谢](#️-鸣谢) - [支持作者](#-支持作者) *** ## 🎯 前言 SMOM 平台发布工具是为 SMOM 框架量身定制的一套自动化发布解决方案。旨在简化开发人员的发布流程,提高工作效率,减少人为操作失误。 本工具采用 **Tauri 2** 框架开发,前端基于 **Vue 3** + **TypeScript** + **Element Plus** 技术栈,后端使用 **Rust** 语言编写,实现了跨平台、高性能、体积小的桌面应用程序。 *** ## 📝 项目介绍 SMOM 平台发布工具主要面向使用 SMOM 框架进行开发的技术人员,提供以下核心能力: - **项目管理**:统一管理多个项目及其环境配置 - **应用配置**:灵活配置各模块的发布路径和服务器信息 - **服务器管理**:支持 Windows/Linux 服务器的 SSH 连接管理 - **一键发布**:自动化编译、打包、上传、服务重启等流程 - **备份还原**:支持发布前自动备份,一键还原历史版本 - **TFS 集成**:支持从 TFS 获取指定版本的代码文件 - **自动更新**:内置应用自动更新功能 *** ## 🛠️ 技术选型 ### 前端技术栈 | 技术 | 版本 | 说明 | | --------------------------------------------- | ------ | ------------------------------------ | | [Vue 3](https://v3.vuejs.org/) | 3.5.33 | 渐进式 JavaScript 框架,采用 Composition API | | [TypeScript](https://www.typescriptlang.org/) | 5.7.2 | JavaScript 的超集,提供类型安全 | | [Vite](https://vitejs.dev/) | 5.4.11 | 下一代前端构建工具,极速开发体验 | | [Element Plus](https://element-plus.org/) | 2.13.7 | 基于 Vue 3 的组件库 | | [Vue Router](https://router.vuejs.org/) | 4.5.0 | Vue.js 官方路由管理器 | | [Pinia](https://pinia.vuejs.org/) | 2.3.1 | Vue 3 官方状态管理库 | | [Vue I18n](https://vue-i18n.intlify.dev/) | 9.14.1 | Vue.js 国际化插件 | | [Sass](https://sass-lang.com/) | 1.79.0 | CSS 预处理器 | | [Lodash](https://lodash.com/) | 4.18.1 | JavaScript 实用工具库 | ### 后端技术栈(Rust) | 技术 | 版本 | 说明 | | ------------------------------------------------ | ------- | ------------ | | [Tauri](https://tauri.app/) | 2.5.6 | 构建跨平台桌面应用的框架 | | [serde](https://serde.rs/) | 1.0.228 | Rust 序列化框架 | | [ssh2](https://github.com/alexcrichton/ssh2-rs) | 0.9 | SSH2 客户端库 | | [zip](https://github.com/zip-rs/zip) | 8.6.0 | ZIP 压缩/解压库 | | [rusqlite](https://github.com/rusqlite/rusqlite) | 0.32 | SQLite 数据库绑定 | | [chrono](https://github.com/chronotope/chrono) | 0.4.44 | 日期时间处理库 | | [quick-xml](https://github.com/tafia/quick-xml) | 0.39.2 | XML 解析库 | ### 开发工具 - **Node.js**: >= 16.0.0 - **Rust**: 1.95.0 - **IDE**: VS Code / WebStorm / RustRover *** ## 📁 目录结构 ``` Rex.SmomPublish/ ├── public/ # 静态资源目录 │ └── static/ # 字体、图标等静态文件 ├── src/ # 前端源码目录 │ ├── assets/ # 资源文件(图片、样式等) │ ├── components/ # 公共组件 │ │ ├── iconSelector/ # 图标选择器 │ │ └── svgIcon/ # SVG 图标组件 │ ├── database/ # SQLite 数据库操作 │ │ ├── appconfig/ # 应用配置相关 │ │ ├── backups/ # 备份记录相关 │ │ ├── project/ # 项目管理相关 │ │ ├── servers/ # 服务器管理相关 │ │ └── teamFoundationServer/ # TFS 配置相关 │ ├── i18n/ # 国际化配置 │ │ └── lang/ # 语言包(zh-cn/en/zh-tw) │ ├── layout/ # 布局组件 │ │ ├── component/ # 布局子组件 │ │ ├── navBars/ # 导航栏组件 │ │ ├── navMenu/ # 菜单组件 │ │ └── upgrade/ # 升级弹窗组件 │ ├── router/ # 路由配置 │ ├── stores/ # Pinia 状态管理 │ ├── theme/ # 主题样式 │ ├── types/ # TypeScript 类型定义 │ ├── utils/ # 工具函数 │ └── views/ # 页面视图 │ ├── appconfig/ # 应用配置页面 │ ├── backups/ # 备份管理页面 │ ├── home/ # 首页(发布页面) │ ├── papersPublish/ # 文件发布页面 │ ├── project/ # 项目管理页面 │ ├── servers/ # 服务器管理页面 │ ├── sshInstall/ # SSH 安装说明页面 │ └── teamFoundationServer/ # TFS 管理页面 ├── src-tauri/ # Tauri 后端源码目录 │ ├── icons/ # 应用图标 │ └── src/ │ ├── cmd_module/ # Tauri 命令模块 │ │ ├── file_module.rs # 文件操作相关命令 │ │ ├── parse_sln_module.rs # 解决方案解析 │ │ ├── sqlite_module.rs # 数据库迁移 │ │ └── wpf_upgrade_module.rs # WPF 模块版本升级 │ ├── utils/ # 工具模块 │ │ ├── compression.rs # 压缩/解压工具 │ │ └── msbuild.rs # MSBuild 编译工具 │ ├── main.rs # 主入口 │ ├── lib.rs # 库入口 │ └── tray.rs # 系统托盘 ├── doc/ # 文档目录 │ └── pic/ # 截图资源 ├── package.json # 前端依赖配置 ├── vite.config.ts # Vite 配置 ├── tsconfig.json # TypeScript 配置 └── README.md # 项目说明文档 ``` *** ## 🔧 环境准备 ### 系统要求 - **操作系统**: Windows 10/11(推荐) - **Node.js**: >= 16.0.0(推荐 18.x 或 20.x LTS 版本) - **Rust**: 1.95.0(推荐使用 rustup 安装) ### 必要软件安装 #### 1. 安装 Node.js 从 [Node.js 官网](https://nodejs.org/) 下载并安装 LTS 版本,或使用 nvm 管理: ```bash # 使用 nvm 安装(推荐) nvm install 20 nvm use 20 # 验证安装 node -v npm -v ``` #### 2. 安装 Rust 从 [Rust 官网](https://www.rust-lang.org/) 下载安装,或使用以下命令: ```bash # Windows 使用 winget 安装 winget install Rustlang.Rustup # 或下载 rustup-init.exe 安装 # https://rustup.rs/ # 验证安装 rustc --version cargo --version ``` #### 3. 安装 Visual Studio Build Tools Rust 在 Windows 上编译需要 MSVC 工具链,请安装: - [Visual Studio 2022](https://visualstudio.microsoft.com/)(推荐) - 或 [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) 安装时选择 **"使用 C++ 的桌面开发"** 工作负载。 #### 4. 安装 WebView2 Windows 10/11 通常已预装 WebView2。如未安装,请从 [Microsoft Edge WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) 下载安装。 ### 可选软件 - **Visual Studio 2019/2022**: 用于编译 .NET 项目(MSBuild) - **Git**: 用于版本控制 *** ## 🚀 快速开始 ### 1. 克隆项目 ```bash # 从 Gitee 克隆 git clone https://gitee.com/zhuyongzhengs/Rex.SmomPublish.git # 进入项目目录 cd Rex.SmomPublish ``` ### 2. 配置镜像源(可选,国内用户推荐) ```bash # 配置 NPM 镜像源 npm config set registry https://mirrors.huaweicloud.com/repository/npm/ # 配置 Cargo 镜像源(在 ~/.cargo/config.toml 中添加) [source.crates-io] replace-with = 'ustc' [source.ustc] registry = "https://mirrors.ustc.edu.cn/crates.io-index" ``` ### 3. 安装依赖 ```bash # 安装前端依赖 npm install ``` ### 4. 开发模式运行 ```bash # 启动开发服务器 npm run tauri dev ``` 首次运行会编译 Rust 代码,可能需要较长时间。 ### 5. 构建发布版本 ```bash # 构建生产版本 npm run tauri build ``` 构建完成后,安装包位于 `src-tauri/target/release/bundle/` 目录下。 *** ## ✨ 功能特性 ### 核心功能 | 功能模块 | 描述 | | ------------- | --------------------------------------------------------- | | 🔧 **项目管理** | 创建、编辑、删除项目,支持多项目并行管理 | | ⚙️ **应用配置** | 配置 WebApiHost、ScheduleServer、WebClient、WpfClient 等模块的发布路径 | | 🖥️ **服务器管理** | 管理 Windows/Linux 服务器连接信息,支持 SSH 远程操作 | | 📦 **一键发布** | 自动化编译、打包、上传、服务重启全流程 | | 💾 **备份还原** | 发布前自动备份,支持一键还原历史版本 | | 📁 **文件发布** | 手动选择文件进行远程发布 | | 🔗 **TFS 集成** | 从 TFS 获取指定版本、日期范围的代码文件 | | 🔄 **自动更新** | 应用启动自动检查更新,支持手动触发更新 | ### 特色功能 - **🌍 多语言支持**: 支持简体中文、繁体中文、英文三种语言 - **🌙 深色模式**: 支持亮色/深色主题切换 - **📱 响应式布局**: 适配不同屏幕尺寸 - **🔒 锁屏功能**: 支持自动锁屏保护隐私 - **📊 实时日志**: 发布过程实时显示日志信息 - **🎯 系统托盘**: 最小化到托盘,后台运行 *** ## 🌞 功能截图 ### 项目发布 ![项目发布](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/raw/master/doc/pic/项目发布.png) ### 项目管理 ![项目管理](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/raw/master/doc/pic/项目管理.png) ### 应用配置 ![应用配置](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/raw/master/doc/pic/应用配置.png) ### 文件发布 ![文件发布](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/raw/master/doc/pic/文件发布.png) ### 服务器管理 ![服务器](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/raw/master/doc/pic/服务器.png) ### TFS 管理 ![TFS](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/raw/master/doc/pic/TFS.png) ### 备份记录 ![备份记录](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/raw/master/doc/pic/备份记录.png) *** ## ❓ 常见问题 ### 1. Rust 编译失败? 确保已安装 Visual Studio Build Tools,并选择 "使用 C++ 的桌面开发" 工作负载。 ### 2. npm install 失败? 尝试切换镜像源或使用 yarn: ```bash npm config set registry https://registry.npmmirror.com/ # 或 yarn install ``` ### 3. MSBuild 路径找不到? 在应用配置页面,点击 "MsBuild路径" 输入框右侧的「自动获取」按钮,系统会自动查找已安装的 MSBuild.exe。 ### 4. SSH 连接失败? 请确保目标服务器已开启 SSH 服务,并检查防火墙设置。Windows 服务器请参考应用内的 "SSH安装说明" 页面。 ### 5. 更新失败? 检查网络连接,确保能够访问更新服务器。如需手动更新,请从 [Gitee Releases](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/releases) 下载最新版本。 *** ## ❤️ 鸣谢 感谢以下开源项目: - [Tauri](https://tauri.app) - 构建更小、更快、更安全的桌面应用 - [Vue.js](https://vuejs.org/) - 渐进式 JavaScript 框架 - [Element Plus](https://element-plus.org/) - Vue 3 组件库 - [vue-next-admin](https://gitee.com/lyt-top/vue-next-admin) - Vue3 后台管理模板 - [TypeScript](https://www.typescriptlang.org/) - JavaScript 的超集 - [Vite](https://vitejs.dev/) - 下一代前端构建工具 - [Pinia](https://pinia.vuejs.org/) - Vue 状态管理 - [Vue Router](https://router.vuejs.org/) - Vue.js 官方路由 - [Vue I18n](https://vue-i18n.intlify.dev/) - Vue.js 国际化 - [Rust](https://www.rust-lang.org/) - 系统编程语言 *** ## 📄 开源协议 本项目基于 [MIT License](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/blob/master/LICENSE) 开源协议。 *** ## 🌟 支持作者 如果这个项目帮助到了你,希望你可以去 [Gitee](https://gitee.com/zhuyongzhengs/Rex.SmomPublish) 帮我点个 ⭐ Star,这将是对我极大的鼓励与支持! 如有问题或建议,欢迎提交 [Issue](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/issues) 或 [Pull Request](https://gitee.com/zhuyongzhengs/Rex.SmomPublish/pulls)。 ***