📦 开发环境打包迁移工具 — 一键打包,随处开发
功能特性 • 快速开始 • 使用示例 • 用户手册 • 开发指南 • 贡献指南
--- ## 🎯 项目简介 **DevPack** 是一个用 Go 编写的跨平台开发环境打包迁移工具。它能够扫描、捕获并打包你当前电脑上的完整开发环境(包括编程语言运行时、包管理器、IDE 配置、Shell 设置、环境变量等),生成一个可移植的 `.devpack` 文件,在另一台同系统的电脑上一键还原,让你在几分钟内恢复完整的开发环境。 ### 为什么需要 DevPack? 每个开发者都经历过这样的痛苦: - 🖥️ **换新电脑** — 花一整天甚至几天重新搭建开发环境 - 🔧 **装了什么?** — 记不清装了哪些工具、配了哪些参数 - 👥 **团队协作** — 新成员入职需要漫长的环境配置过程 - 📋 **环境不一致** — "在我电脑上能跑"的经典问题 DevPack 就像给你的开发环境拍一张"快照",随时随地还原。 ### DevPack vs Docker | 特性 | DevPack | Docker | |------|---------|--------| | 目标 | 打包**宿主机开发环境** | 打包**应用运行环境** | | 使用场景 | 电脑迁移、环境备份 | 应用部署、环境隔离 | | 捕获内容 | IDE设置、Shell配置、工具链 | 应用代码、依赖、系统库 | | 运行方式 | 直接还原到宿主机 | 运行在容器中 | | 性能开销 | 无 | 有(虚拟化层) | | 学习成本 | 低 | 中等 | > 💡 DevPack 不是 Docker 的替代品,而是补充。Docker 解决"应用如何部署",DevPack 解决"开发者如何迁移"。 --- ## ✨ 功能特性 ### 🔍 智能扫描 - 自动检测已安装的编程语言、框架、工具 - 识别包管理器及已安装的包(Scoop、Chocolatey、Winget、Homebrew、APT 等) - 捕获 IDE/编辑器配置(VS Code 扩展与设置、JetBrains 设置等) - 收集 Shell 配置(PowerShell Profile、.bashrc、.zshrc 等) ### 📦 一键打包 - 生成可移植的 `.devpack` 打包文件 - 支持选择性打包(只打包你需要的部分) - 敏感数据加密存储(SSH 密钥、Token 等) - 增量打包,节省空间 ### 🚀 快速还原 - 自动依赖解析与安装顺序管理 - 冲突检测与智能合并 - 干运行模式(预览将做的更改) - 回滚机制(还原失败可撤销) ### 🧩 插件化架构 - 内置丰富的采集器插件 - 支持自定义采集器开发 - 社区插件生态 ### 📊 环境管理 - 命名配置文件(Profile)管理 - 环境差异对比 - 环境版本历史 --- ## 📋 系统要求 | 操作系统 | 最低版本 | 架构 | |---------|---------|------| | Windows | 10 1903+ | x64, ARM64 | | macOS | 11 Big Sur+ | x64, ARM64 (Apple Silicon) | | Linux | Ubuntu 20.04+ / CentOS 8+ | x64, ARM64 | --- ## 🚀 快速开始 ### 安装 **使用 Go 安装:** ```bash go install github.com/user/devpack@latest ``` **Windows (Scoop):** ```powershell scoop bucket add devpack https://github.com/user/devpack-bucket scoop install devpack ``` **macOS (Homebrew):** ```bash brew tap user/devpack brew install devpack ``` **从 Release 下载:** 前往 [Releases](https://github.com/user/devpack/releases) 页面下载对应平台的二进制文件。 ### 快速上手 ```bash # 1. 初始化(创建默认配置文件) devpack init # 2. 扫描当前环境 devpack scan # 3. 打包开发环境 devpack capture --name "my-dev-env" # 4. 导出为可移植文件 devpack export my-dev-env -o my-dev-env.devpack # 5. 在新电脑上还原 devpack import my-dev-env.devpack devpack restore my-dev-env ``` --- ## 💻 使用示例 ### 场景一:打包完整开发环境 ```bash # 扫描并预览将要打包的内容 devpack scan --verbose # 创建完整环境快照 devpack capture --name "fullstack-2026" --all # 导出 devpack export fullstack-2026 -o fullstack-2026.devpack ``` ### 场景二:只打包特定工具链 ```bash # 只打包 Go + VS Code 相关配置 devpack capture --name "golang-env" \ --collectors runtime,editor \ --filter "runtime:go,editor:vscode" ``` ### 场景三:团队环境标准化 ```bash # 团队 Lead 导出标准开发环境 devpack capture --name "team-standard" --profile team.yaml devpack export team-standard -o team-standard.devpack # 新成员导入并还原 devpack import team-standard.devpack devpack restore team-standard --dry-run # 先预览 devpack restore team-standard # 确认后还原 ``` ### 场景四:对比两台电脑的环境差异 ```bash # 在电脑 A 上导出 devpack capture --name "pc-a" devpack export pc-a -o pc-a.devpack # 在电脑 B 上对比 devpack import pc-a.devpack devpack diff pc-a --current ``` --- ## 🏗️ 项目结构 ``` DevPack/ ├── cmd/ # CLI 入口与命令定义 │ └── devpack/ │ ├── main.go │ └── commands/ # 各子命令实现 ├── internal/ # 内部包(不对外暴露) │ ├── collector/ # 采集器核心 │ │ ├── registry.go # 采集器注册中心 │ │ ├── runtime/ # 运行时采集器(Go, Node, Python...) │ │ ├── editor/ # 编辑器采集器(VS Code, JetBrains...) │ │ ├── shell/ # Shell 采集器 │ │ ├── package/ # 包管理器采集器 │ │ ├── git/ # Git 配置采集器 │ │ ├── env/ # 环境变量采集器 │ │ ├── font/ # 字体采集器 │ │ └── ssh/ # SSH/GPG 密钥采集器 │ ├── pack/ # 打包/解包引擎 │ ├── restore/ # 还原引擎 │ ├── profile/ # 配置文件管理 │ ├── diff/ # 环境差异对比 │ ├── crypto/ # 加密模块 │ ├── platform/ # 平台适配层 │ │ ├── windows/ │ │ ├── darwin/ │ │ └── linux/ │ └── config/ # 应用配置 ├── pkg/ # 可对外使用的公共包 │ ├── manifest/ # Pack 清单格式定义 │ └── version/ # 版本信息 ├── plugins/ # 外部插件目录 ├── docs/ # 项目文档 │ ├── PRD.md # 产品需求文档 │ ├── ARCHITECTURE.md # 架构设计文档 │ ├── DEVELOPMENT.md # 开发指南 │ ├── API.md # API 设计文档 │ ├── ROADMAP.md # 开发路线图 │ ├── USER-GUIDE.md # 用户手册 │ └── CONTRIBUTING.md # 贡献指南 ├── test/ # 集成测试 ├── scripts/ # 构建与工具脚本 ├── .github/ # GitHub Actions CI/CD ├── go.mod ├── go.sum ├── Makefile ├── LICENSE └── README.md ``` --- ## 📖 文档 | 文档 | 说明 | |------|------| | [产品需求文档 (PRD)](docs/PRD.md) | 产品定位、用户画像、功能需求 | | [架构设计文档](docs/ARCHITECTURE.md) | 系统架构、核心模块、数据流 | | [开发指南](docs/DEVELOPMENT.md) | 开发环境搭建、编码规范、测试 | | [API 设计文档](docs/API.md) | CLI 命令、内部 API、Pack 格式规范 | | [开发路线图](docs/ROADMAP.md) | 版本规划与里程碑 | | [用户手册](docs/USER-GUIDE.md) | 安装、使用、常见问题 | | [贡献指南](docs/CONTRIBUTING.md) | 如何参与项目开发 | --- ## 🤝 贡献 欢迎贡献代码、报告 Bug 或提出新功能建议!请查看 [贡献指南](docs/CONTRIBUTING.md) 了解详情。 --- ## 📄 许可证 本项目采用 [MIT License](LICENSE) 开源。 ---Built with ❤️ by DevPack Team