全栈程序员看过来~节省你的时间利器! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
hankli
V2EX    分享创造

全栈程序员看过来~节省你的时间利器!

  •  1
     
  •   hankli
    aooohan 2023-12-25 16:54:39 +08:00 4297 次点击
    这是一个创建于 722 天前的主题,其中的信息可能已经有所发展或是发生改变。

    详细教程:

    作为一个全栈程序员经常面临为不同项目管理多种语言或工具的不同版本的为问题。这可能涉及使用不同的版本管理工具,如 Node 的 NVM 、Flutter 的 FVM 、Java 的 SDKMAN 等,每种工具都有自己独特的使用方法。这些工具的安装和管理既繁琐又耗时。此外,跨平台兼容性通常也是一个问题,不同的环境需要不同的工具! 比如 nvm 和 nvm-windows.

    所以开发了 VersionFox 工具! 跨平台! 插件! 你只需要一个 VersionFox 就能管理多个你想要的语言! 不用在学习和使用各种特定语言的版本管理工具啦!!!

    欢迎大家使用, 顺便提提 issue~

    仓库地址: https://github.com/version-fox/vfox

    16 条回复    2023-12-27 16:14:35 +08:00
    pikko
        1
    pikko  
       2023-12-25 17:00:33 +08:00
    为啥设计 ```vfox add flutter ``` 后面还得加 lua 地址
    hankli
        2
    hankli  
    OP
       2023-12-25 17:06:29 +08:00
    @pikko 是这样,因为目前没有做统一分插件发的入口, 比如说 vfox add flutter 直接就安装 flutter 插件了, 因为现在项目刚起步, 插件数量也不大, 对插件的安装来源没有限制, 后面如果插件数量起来了, 会做这个功能的. 就目前的设计而言, 1.允许用户自定义插件的名称, 可能插件的名称并不是用户想要的 2.就是前面说的, 用户可以安装任何地方的插件, 可以是网络文件也可以是本地文件.
    hoopz
        3
    hoopz  
       2023-12-25 17:08:31 +08:00
    今天刚开在找相关软件,我都怀疑这条是算法推给我的。
    看了 chocolatey ,asdf-vm 。
    hankli
        4
    hankli  
    OP
       2023-12-25 17:16:03 +08:00
    @hoopz 哈哈哈, 我刚推这个项目, 你说的这俩就是我要解决的问题, chocolatey 只针对 windows, asdf-vm 只针对 unix-like 系统环境.... 虽然都是非常棒的项目, 但其实还是能整合的, 现在版本管理工具简直跟娱乐圈一样... 五花八门...
    pikko
        5
    pikko  
       2023-12-25 17:43:19 +08:00
    @hankli #2 所以这里的 ```flutter ``` 是用户的自定义名称,后面的链接是源?
    本身就这条命令很不直觉,一些自定义用 --name --url 感觉直觉一点
    ```vfox add flutter``` 这条就很直觉感觉有官方维护包,结果后面又有一个 url
    我理解应该是```vfox add flutter --url https://...``` ,然后不填 url 的话就默认是你给的官方 url 示例那个长期维护
    hankli
        6
    hankli  
    OP
       2023-12-25 17:56:54 +08:00
    @pikko 目前有个仓库专门存放插件,https://github.com/version-fox/version-fox-plugins
    > 我理解应该是```vfox add flutter --url https://...``` ,然后不填 url 的话就默认是你给的官方 url 示例那个长期维护
    好想法, 我记录一个 issue 哈哈哈, 因为本着能简则简的原则(懒,能少输入就少输入)外加没有想做统一入口的打算, 直接就是 vfox add <sdk-name> <url>了, 我记下啦
    cleanery
        7
    cleanery  
       2023-12-26 09:42:53 +08:00   1
    不过这东西不是经常需要重装的, 下次有新电脑的时候试试吧
    kohoh
        8
    kohoh  
       2023-12-26 11:39:31 +08:00
    @cleanery 和我的想法一样
    body007
        9
    body007  
       2023-12-26 14:19:50 +08:00
    https://github.com/moqsien/gvc

    这个库貌似也想做你要做的事。
    hankli
        10
    hankli  
    OP
       2023-12-26 14:59:35 +08:00
    @body007 确实, 目标是一样的, 不过我看了一下, 他是 golang 实现了支持的 sdk, 而我的想法是, 具体实现放给用户, 可以是 sdk 也可以是工具, 只要按照插件规范实现出来的东西都能够通过 VersionFox 管理.
    body007
        11
    body007  
       2023-12-26 16:06:08 +08:00
    @hankli #10 用过 https://github.com/Schniz/fnm ,其中我觉得好的功能就是每个打开的终端都可以使用特定版本,cd 到项目目录自动读取该目录文件自动切换到项目需要的版本。你的这个仓库支持么?我还没细看你这个仓库功能呢。
    hankli
        12
    hankli  
    OP
       2023-12-26 16:42:31 +08:00
    @body007 目前不支持, 有这个想法. 精力有限, 先做好核心功能, 目前在做#1 楼提到的入口问题.
    你说的这个可实现, 不过对于通用工具而言,并不是所有的语言都能够检测项目版本. fnm 能实现是因为 Node 有 package.json.
    当然啦有兴趣可以一起啊.
    body00
        13
    body007  
       2023-12-26 16:55:20 +08:00   1
    @hankli #12 嗯嗯,期待后续更新。主要是 fnm 那种创建链接目录的思想让我觉得优秀,能做到每个打开的终端都支持不同版本。
    cxmokai
        14
    cxmokai  
       2023-12-26 18:26:46 +08:00
    hankli
        15
    hankli  
    OP
       2023-12-27 14:45:37 +08:00
    pikko
        16
    pikko  
       2023-12-27 16:14:35 +08:00   1
    @hankli #15 是的心智小好多了~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1091 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 18:13 PVG 02:13 LAX 10:13 JFK 13:13
    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