UNPKG

quick-deploy-kit

Version:

通用快速部署工具包 - 基于实际生产验证的Docker化部署解决方案,支持多环境管理和智能化部署

331 lines (243 loc) 7.19 kB
# Quick Deploy Toolkit [![npm version](https://badge.fury.io/js/quick-deploy-kit.svg)](https://badge.fury.io/js/quick-deploy-kit) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 通用快速部署工具包 - 基于实际生产验证的Vue3+NestJS项目成功经验,提供完整的Docker化部署解决方案。 ## 🎉 v2.0 重大更新 基于实际生产环境验证的部署方案,全面优化: ### ✅ 核心优化 - **多阶段Docker构建** - 镜像体积减少50-70% - **并行构建优化** - 构建时间减少40-60% - **多层缓存策略** - 重复构建提升60-80% - **多环境配置管理** - 支持dev/staging/prod环境 - **共享变量自动同步** - 统一配置管理 - **智能部署检测** - 基于文件变更的选择性构建 ## 功能特性 - 🚀 一键初始化项目部署配置 - 🔧 支持多种前后端技术栈组合 - 🐳 自动生成Docker配置 - 📦 GitLab CI/CD自动部署 - 🔄 智能构建和部署策略 - 📊 健康检查和监控 - 🛡️ 安全配置和最佳实践 ## 支持的技术栈 ### 前端框架 - Vue 3 + Vite + Element Plus - React + Vite + Ant Design - Angular + TypeScript - Next.js (React) - Nuxt.js (Vue) ### 后端框架 - NestJS + TypeScript + MySQL - Express + TypeScript + MySQL - Koa + TypeScript + MySQL - Spring Boot + Java + MySQL - Django + Python + PostgreSQL ## 🚀 快速开始 ### 安装 ```bash # 全局安装(推荐) npm install -g quick-deploy-kit # 或使用短命令 npm install -g qdt ``` ### 一键启动 ```bash # 交互式启动(推荐) quick-deploy # 或 qdt # 选择 "完整工作流程" 获得最佳体验 ``` ### 核心命令 ```bash # 初始化新项目(基于实际验证的模板) quick-deploy init my-project # 环境管理 quick-deploy env switch development quick-deploy env switch production # 同步共享变量 quick-deploy sync-vars # 统一配置检查 quick-deploy check-all # 验证配置 quick-deploy validate --fix ``` ## 📋 完整功能 ### 项目初始化 ```bash # 基于实际验证的模板初始化 quick-deploy init my-project # 自动生成完整配置: # ✅ 多阶段Docker构建配置 # ✅ 智能GitLab CI/CD流水线 # ✅ 并行构建和部署脚本 # ✅ 多环境配置管理 # ✅ 共享变量统一管理 # ✅ 健康检查和监控脚本 ``` ### 环境管理 ```bash # 切换开发环境 quick-deploy env switch development # 切换生产环境 quick-deploy env switch production # 查看当前环境 quick-deploy env current # 列出所有环境 quick-deploy env list ``` ### 配置管理 ```bash # 同步共享变量到所有配置文件 quick-deploy sync-vars # 统一配置检查 quick-deploy check-all # 验证配置并自动修复 quick-deploy validate --fix ``` ### 智能部署 ```bash # 自动检测文件变更构建 (推荐) git commit -m "更新前端界面" && git push # 手动指定构建范围 git commit -m "[frontend] 更新界面" && git push git commit -m "[backend] 更新API" && git push git commit -m "[all] 全量更新" && git push ``` ### 🔧 编程接口 ```javascript const { init, validate, test } = require('quick-deploy-kit'); // 初始化项目 await init({ projectName: 'my-project', frontend: { framework: 'vue3-vite-element' }, backend: { framework: 'nestjs-typescript-mysql' } }); // 验证配置 const isValid = await validate('./my-project'); // 测试部署 const testPassed = await test('./my-project', { fullTest: true }); ``` ### 📚 获取帮助 ```bash # 查看帮助信息 quick-deploy --help # 查看特定命令的帮助 quick-deploy init --help quick-deploy validate --help ``` ## 目录结构 ``` deploy-toolkit/ ├── init.js # 初始化脚本 ├── templates/ # 配置模板 │ ├── frontend/ # 前端模板 │ ├── backend/ # 后端模板 │ ├── docker/ # Docker配置模板 │ ├── ci/ # CI/CD模板 │ └── nginx/ # Nginx配置模板 ├── scripts/ # 部署脚本 └── docs/ # 文档 ``` ## 使用说明 详细使用说明请参考 [使用指南](./docs/usage.md) ## 开发 ### 本地开发 ```bash # 克隆项目 git clone https://github.com/yourusername/quick-deploy-toolkit.git cd quick-deploy-toolkit # 安装依赖 npm install # 构建项目 npm run build # 运行测试 npm test # 代码检查 npm run lint # 本地链接测试 npm link quick-deploy --help ``` ### 测试 ```bash # 运行所有测试 npm test # 监听模式运行测试 npm run test:watch # 生成覆盖率报告 npm test -- --coverage ``` ### 发布 ```bash # 构建和测试 npm run build npm test # 发布到npm npm publish ``` ## API文档 ### Initializer ```javascript const { Initializer } = require('quick-deploy-kit'); const initializer = new Initializer({ projectName: 'my-project', template: 'vue3-nestjs', force: false, quiet: false }); await initializer.run(); ``` ### Validator ```javascript const { Validator } = require('quick-deploy-kit'); const validator = new Validator({ projectPath: './my-project', autoFix: true, generateReport: true }); const isValid = await validator.validate(); ``` ### Tester ```javascript const { Tester } = require('quick-deploy-kit'); const tester = new Tester({ projectPath: './my-project', fullTest: true, generateReport: true }); const success = await tester.runTests(); ``` ## 贡献 欢迎贡献代码!请遵循以下步骤: 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 开启 Pull Request ### 贡献指南 - 遵循现有的代码风格 - 添加适当的测试 - 更新相关文档 - 确保所有测试通过 ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 更新日志 ### v1.0.0 - 初始版本发布 - 支持5种前端框架 × 5种后端框架组合 - 完整的Docker化部署配置生成 - GitLab CI/CD自动部署支持 - 配置验证和测试功能 - 交互式命令行界面 ## 支持 如果你觉得这个项目有用,请给它一个 ⭐️! - 📧 邮箱: your.email@example.com - 🐛 问题反馈: [GitHub Issues](https://github.com/yourusername/quick-deploy-toolkit/issues) - 💬 讨论: [GitHub Discussions](https://github.com/yourusername/quick-deploy-toolkit/discussions) ## 相关项目 - [Docker](https://www.docker.com/) - 容器化平台 - [GitLab CI/CD](https://docs.gitlab.com/ee/ci/) - 持续集成/持续部署 - [Vue.js](https://vuejs.org/) - 渐进式JavaScript框架 - [NestJS](https://nestjs.com/) - 企业级Node.js框架