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

vfox 1.0.0 发布~

  •  
  •   hankli
    aooohan 1 月 14 日 1606 次点击
    这是一个创建于 102 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    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  
       1 月 14 日   1
    恭喜 1.0 发布,挺好用的
    hankli
        2
    hankli  
    OP
       1 月 14 日
    @z960112559 哈哈哈,谢谢支持
    skylark8
        3
    skylark8  
       1 月 15 日
    试了一下很好用,把现有的 nvm 啥的都迁移过来了
    hankli
        4
    hankli  
    OP
       1 月 15 日
    @xiangsanliu 那就可以哈哈哈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2743 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 10:07 PVG 18:07 LAX 03:07 JFK 06:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86