V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
hankli
V2EX  ›  分享创造

vfox 1.0.0 发布~

  •  
  •   hankli ·
    aooohan · 2 天前 · 645 次点击

    前言

    vfox 已经 2 年了,中间我也经历了裁员,并没有花太多精力去维护和宣传,非常感谢社区各位小伙伴的贡献和维护~

    最近我重新审视了项目,决定花时间彻底解决 vfox 遗留多时的核心问题。

    适合 vfox 的版本管理方案

    版本管理工具的本质是对 PATH 环境变量的管理。目前常见的方案可以归为两类:纯 PATH (绝对路径)、Shim ( shell 脚本包装/软链)

    vfox 从早期版本分别使用过这两种方案,但结果都不够理想。结合 vfox 作用域的功能及限制,最终决定采用:符号链接 + PATH 操作的混合策略

    这种方案既保留了两种方式的优势,又规避了各自的缺陷,是我认为目前最适合通用版本管理器的解决方案。ps: 有些问题没有绝对的解决,但是可以相对缓解~

    具体实现细节请查看下方内容。

    🎉 核心改进:解决临时目录问题

    问题背景

    在 v1.0.0 之前,无论使用 sessionglobal 还是 project 作用域,所有 SDK 都会存储在临时目录中。这导致当 shell 关闭后,之前配置的版本信息立即失效,造成虚拟环境和 CI 流程中出现"目录不存在"的错误。

    v1.0.0 方案

    本版本将三个作用域的行为彻底拆分,采用更加合理的管理策略:

    📍 Project 作用域(项目级)

    • 在当前项目目录下自动生成 .vfox/sdks/<sdk> 软链
    • 将项目路径加入 PATH ,实现项目隔离
    • 可选参数:--unlink 禁用此行为(不推荐)
    • 建议:将生成的 .vfox/ 目录添加到 .gitignore

    ⏱️ Session 作用域(会话级)

    • 保持原有行为,SDK 存储在临时目录中
    • 与 shell 生命周期绑定,关闭 shell 自动清理

    🌍 Global 作用域(全局)

    • ~/.vfox/sdks/<sdk> 下生成永久软链
    • 指向实际的 SDK 版本目录
    • 跨 shell 会话保持有效

    优先级规则

    通过 PATH 环境变量控制优先级,从高到低依次为:

    #Project > Session > Global > System
    $PWD/.vfox/sdks/nodejs/bin:~/.vfox/tmp/<pid>/nodejs/bin:~/.vfox/sdks/nodejs/bin:/usr/bin:...
    

    具体用法请参考文档

    其他功能

    新配置格式支持

    • 引入 vfox.toml.vfox.toml 新配置格式,提供更清晰的配置体验
    • 完全兼容旧版 .tool-versions 格式,确保平滑迁移

    多用户支持

    • 支持多用户场景,每个用户拥有独立配置空间
    • 支持全局配置和 SDK 安装,便于团队环境统一管理

    Exec 命令

    • 新增 exec 命令,允许在指定 SDK 版本下执行任意命令
    • 完美支持 CI/CD 流程和 VSCode 集成
    • 用法示例vfox x nodejs@20 -- node -v

    其他更多改进,请看release

    官网: https://vfox.dev/ 仓库: https://github.com/version-fox/vfox

    4 条回复    2026-01-15 14:46:04 +08:00
    z960112559
        1
    z960112559  
       2 天前   ❤️ 1
    恭喜 1.0 发布,挺好用的
    hankli
        2
    hankli  
    OP
       2 天前
    @z960112559 哈哈哈,谢谢支持
    skylark8
        3
    skylark8  
       1 天前
    试了一下很好用,把现有的 nvm 啥的都迁移过来了
    hankli
        4
    hankli  
    OP
       1 天前
    @xiangsanliu 那就可以哈哈哈
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   882 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:26 · PVG 05:26 · LAX 13:26 · JFK 16:26
    ♥ Do have faith in what you're doing.