vfox
如果你经常在需要不同环境的开发项目之间切换,特别是不同的运行时版本或周边库,或者你厌倦了各种繁琐的环境配置,那么vfox
就是你理想的选择。
简介
vfox
是一个跨平台的版本管理器(类似于nvm
、fvm
、sdkman
、asdf-vm
等),可通过插件扩展。它允许你通过命令行快速安装和切换所需的不同环境。
为什么使用vfox?
- 跨平台支持(Windows、Linux、macOS)
- 一致的命令管理所有你的编程语言
- 支持不同项目、不同shell和全局范围的不同版本
- 简单的插件系统,可以添加对你选择的运行时的支持
- 在项目中遍历时自动切换运行时版本
- 支持现有的配置文件
.node-version
、.nvmrc
、.sdkmanrc
,便于迁移 - 为常见shell(Bash、ZSH、Powershell、Clink)提供shell补全功能
- 比
asdf-vm
更快,提供更简单的命令和真正的跨平台统一 参见与asdf的比较
演示
快速开始
详细安装说明,请参阅快速开始
1. 选择适合你的安装方式。
2. ⚠️ 将vfox
钩入你的shell(选择一种适合你的shell的方式) ⚠️
echo 'eval "$(vfox activate bash)"' >> ~/.bashrc
echo 'eval "$(vfox activate zsh)"' >> ~/.zshrc
echo 'vfox activate fish | source' >> ~/.config/fish/config.fish
# 对于PowerShell:
if (-not (Test-Path -Path $PROFILE)) { New-Item -Type File -Path $PROFILE -Force }; Add-Content -Path $PROFILE -Value 'Invoke-Expression "$(vfox activate pwsh)"'
# 对于Clink:
# 1. 安装clink:https://github.com/chrisant996/clink/releases
# 或安装cmder:https://github.com/cmderdev/cmder/releases
# 2. 找到脚本路径:clink info | findstr scripts
# 3. 将internal/shell/clink_vfox.lua复制到脚本路径
记得重启你的shell以应用更改。
3. 添加SDK插件
$ vfox add nodejs
4. 安装运行时
$ vfox install nodejs@21.5.0
5. 切换运行时
$ vfox use nodejs@21.5.0
$ node -v
21.5.0
完整文档
完整文档请参见vfox.lhan.me。
路线图
我们的未来计划和高优先级功能及改进包括:
- 重构插件机制:
- 引入插件模板,便于多文件插件开发。
- 建立全局注册表(类似于
NPM Registry
或Scoop Main Bucket
),为插件分发提供统一入口。 - 将现有插件仓库分解为单独的仓库,每个插件一个仓库。
- 允许切换注册表地址。
- 插件功能:解析遗留配置文件,如
.nvmrc
、.node-version
、.sdkmanrc
等。 - 插件功能:允许插件加载已安装的运行时并提供运行时信息。
可用插件
如果你已安装
vfox
,可以通过vfox available
命令查看所有可用插件。
更多详情,请参见可用插件。
贡献者
感谢以下为本项目做出贡献的人。🎉🎉🙏🙏
贡献
欢迎提交错误报告、贡献和分支。所有的错误或其他形式的讨论都在issues上进行。
更多信息请参见CONTRIBUTING.md。
插件贡献请前往公共注册表
Star历史
致谢
感谢JetBrains提供免费的开源许可证。:)
版权
Apache 2.0许可证 - 版权所有 (C) 2024 Han Li 和贡献者