Devbox
即时、简单且可预测的开发环境
什么是 Devbox?
Devbox 是一个命令行工具,可以轻松创建用于开发的隔离环境。首先定义开发环境所需的软件包列表,然后 Devbox 使用该定义为您的应用程序创建一个隔离的环境。
实际上,Devbox 的工作方式类似于 yarn
这样的包管理器 - 不同之处在于它管理的包是操作系统级别的(通常使用 brew
或 apt-get
安装的那种)。使用 Devbox,您可以从 Nix 包注册表安装超过 400,000 个软件包版本。
Devbox 最初由 Jetify 开发,内部由 nix
驱动。
演示
您可以使用下面的按钮在浏览器中试用 Devbox:
下面的示例创建了一个包含 python 2.7
和 go 1.18
的开发环境,即使这些包未安装在底层机器上:
安装 Devbox
使用以下安装脚本获取最新版本的 Devbox:
curl -fsSL https://get.jetify.com/devbox | bash
在 Devbox 文档 中了解更多信息。
优势
为团队中的每个人提供一致的 shell 环境
通过 devbox.json
文件声明项目所需的工具列表,然后运行 devbox shell
。项目中的每个人都会获得一个具有完全相同版本工具的 shell 环境。
尝试新工具而不污染您的笔记本电脑
Devbox 创建的开发环境与笔记本电脑上的其他内容隔离。想尝试一个新工具而不弄乱环境吗?将它添加到 Devbox shell 中,不需要时再删除 - 同时保持笔记本电脑的整洁。
不牺牲速度
Devbox 可以直接在您的笔记本电脑上创建隔离环境,无需额外的虚拟化层来减慢文件系统或每个命令的速度。当您准备部署时,它会将其转换为等效的容器 - 但不会在此之前。
告别版本冲突
您是否在处理多个项目,它们都需要同一个二进制文件的不同版本?不必尝试在笔记本电脑上安装相同二进制文件的冲突版本,而是为每个项目创建一个隔离环境,并为每个环境使用所需的任何版本。
随身携带您的环境
Devbox 的开发环境是可移植的。我们使得只需声明一次环境,就可以以多种不同方式使用该单一定义,包括:
- 通过
devbox shell
创建的本地 shell - 可与 VSCode 一起使用的 devcontainer
- 用于构建生产镜像的 Dockerfile,使用与开发时完全相同的工具
- 与本地环境相同的远程云开发环境
快速入门:快速、确定性的 Shell
在这个快速入门中,我们将创建一个安装了特定工具的开发 shell。这些工具只在使用这个 Devbox shell 时可用,确保不会污染您的机器。
-
在新的空文件夹中打开终端。
-
初始化 Devbox:
devbox init
这将在当前目录中创建一个
devbox.json
文件。您应该将其提交到源代码控制中。 -
从 Nix 添加命令行工具。例如,添加 Python 3.10:
devbox add python@3.10
在 Nixhub.io 上搜索更多软件包
-
您的
devbox.json
文件会跟踪已添加的软件包,现在应该如下所示:{ "packages": [ "python@3.10" ] }
-
启动一个安装了这些工具的新 shell:
devbox shell
您可以通过 shell 提示符的变化判断您是否在 Devbox shell 中(而不是常规终端)。
-
使用您喜欢的工具。
在这个例子中,我们安装了 Python 3.10,所以让我们使用它。
python --version
-
您的常规工具也可用,包括环境变量和配置设置。
git config --get user.name
-
要退出 Devbox shell 并返回到常规 shell:
exit
在 Devbox 文档快速入门 中了解更多信息。
其他命令
devbox help
- 查看所有命令
完整的命令列表请参阅 CLI 参考。
加入我们的开发者社区
- 加入 Jetify Discord 服务器 与我们聊天 - 我们有一个专门用于此项目的 #devbox 频道。
- 使用 Github Issues 提交错误报告和功能请求
- 关注 Jetify 的 Twitter 获取产品更新
贡献
Devbox 是一个开源项目,欢迎贡献。在提交拉取请求之前,请阅读 我们的贡献指南。
相关工作
感谢 Nix 提供隔离的 shell。
翻译
许可证
本项目自豪地在 Apache 2.0 许可证 下开源