Files
DevPack/README.md
2026-03-03 18:20:18 +08:00

8.2 KiB
Raw Blame History

DevPack Logo

DevPack

📦 开发环境打包迁移工具 — 一键打包,随处开发

功能特性快速开始使用示例用户手册开发指南贡献指南


🎯 项目简介

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 安装:

go install github.com/user/devpack@latest

Windows (Scoop)

scoop bucket add devpack https://github.com/user/devpack-bucket
scoop install devpack

macOS (Homebrew)

brew tap user/devpack
brew install devpack

从 Release 下载:

前往 Releases 页面下载对应平台的二进制文件。

快速上手

# 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

💻 使用示例

场景一:打包完整开发环境

# 扫描并预览将要打包的内容
devpack scan --verbose

# 创建完整环境快照
devpack capture --name "fullstack-2026" --all

# 导出
devpack export fullstack-2026 -o fullstack-2026.devpack

场景二:只打包特定工具链

# 只打包 Go + VS Code 相关配置
devpack capture --name "golang-env" \
  --collectors runtime,editor \
  --filter "runtime:go,editor:vscode"

场景三:团队环境标准化

# 团队 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            # 确认后还原

场景四:对比两台电脑的环境差异

# 在电脑 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) 产品定位、用户画像、功能需求
架构设计文档 系统架构、核心模块、数据流
开发指南 开发环境搭建、编码规范、测试
API 设计文档 CLI 命令、内部 API、Pack 格式规范
开发路线图 版本规划与里程碑
用户手册 安装、使用、常见问题
贡献指南 如何参与项目开发

🤝 贡献

欢迎贡献代码、报告 Bug 或提出新功能建议!请查看 贡献指南 了解详情。


📄 许可证

本项目采用 MIT License 开源。


Built with ❤️ by DevPack Team