vfox

バージョン管理多言語対応クロスプラットフォームWindows対応プラグインシステムGo言語Lua

GitHub概要

version-fox/vfox

A cross-platform and extendable version manager with support for Java, Node.js, Flutter, .Net & more

ホームページ:https://vfox.dev
スター3,445
ウォッチ15
フォーク131
作成日:2023年12月9日
言語:Go
ライセンス:Apache License 2.0

トピックス

asdfbashclicmdcross-platformdevelopment-toolsgolanglinuxluamacosnodejsplugin-managerpowershellsdktoolsversion-managerwindowszsh

スター履歴

version-fox/vfox Star History
データ取得日時: 2025/7/20 03:55

言語バージョン管理ツール

vfox (version fox)

概要

vfoxは、クロスプラットフォーム対応を重視した多言語バージョン管理ツールです。特にWindows環境での使いやすさに焦点を当てて設計されており、ネイティブWindows対応を含む真のクロスプラットフォーム統一を実現しています。Go言語で実装され、Luaスクリプトによる拡張可能なプラグインシステムを採用。Java、Node.js、Flutter、.NET、Python、Erlang/Elixirなど主要な言語とフレームワークをサポートし、シンプルで高速なコマンドラインインターフェースを提供します。

詳細

主な特徴

  • 真のクロスプラットフォーム: Windows、macOS、Linux、WSLでネイティブ動作
  • Windows最適化: PowerShell統合、Windows特有の環境変数管理
  • Luaプラグインシステム: シンプルで拡張性の高いプラグイン機構
  • 統一コマンドインターフェース: 全プラットフォームで一貫した操作性
  • 自動バージョン切り替え: .tool-versionsファイルによる自動検出
  • レガシー設定互換: .nvmrc.node-version.sdkmanrcなどをサポート
  • 高速パフォーマンス: Go実装による軽量で高速な動作
  • シェル統合: Bash、Zsh、PowerShell、Fish、Nushell、Clinkに対応

アーキテクチャ設計

vfoxのアーキテクチャは以下の主要コンポーネントで構成されています:

  • CLIインターフェース: ユーザーコマンドの処理
  • SDKマネージャー: ランタイムのインストールと使用管理
  • 環境マネージャー: 環境変数の管理とシェル統合
  • 設定マネージャー: ユーザー設定の処理
  • プラグインシステム: Luaスクリプトによる拡張機能

Windows環境での優位性

  • ネイティブサポート: WSL不要でWindows上で直接動作
  • レジストリ統合: Windows環境変数をレジストリ経由で管理
  • シンボリックリンク: mklink /jコマンドによるディレクトリジャンクション作成
  • PowerShell統合: プロンプト関数の修正による自動環境切り替え
  • Windowsプラグイン: Erlang/OTP、ElixirなどWindows対応プラグインの充実

プラグインエコシステム

  • Luaスクリプト: シンプルで学習しやすいプラグイン開発
  • プラグインテンプレート: 複数ファイルプラグイン開発の支援
  • グローバルレジストリ: NPMやScoopのような統一配布ポイント(開発中)
  • 豊富な言語サポート: 主要プログラミング言語の大部分をカバー

メリット・デメリット

メリット

  • Windows完全対応: ネイティブWindows環境での優れた使用感
  • クロスプラットフォーム一貫性: 全OSで同じ操作体験
  • シンプルなコマンド: asdfより直感的なコマンド体系
  • 高速動作: Go言語実装による軽量・高速性
  • 拡張性: Luaプラグインによる簡単なカスタマイズ
  • レガシー互換: 既存の設定ファイルをそのまま使用可能
  • 活発な開発: 2024年もWindows対応プラグインが追加

デメリット

  • コミュニティ規模: asdfやmiseと比較して小規模
  • プラグイン数: まだ発展途上のエコシステム
  • ドキュメント: 主に英語と中国語のドキュメント
  • 認知度: 他のツールと比較して知名度が低い
  • 機能制限: 環境変数管理やタスク機能は限定的

参考ページ

書き方の例

インストール

# macOS/Linux(推奨方法)
curl -sSL https://raw.githubusercontent.com/version-fox/vfox/main/install.sh | bash

# Windows(Scoop)
scoop install vfox

# Windows(WinGet)
winget install vfox

# macOS(Homebrew)
brew install vfox

# 手動インストール(全プラットフォーム)
# GitHubリリースページから最新版をダウンロード
# https://github.com/version-fox/vfox/releases

# インストール確認
vfox --version

シェル統合設定

# Bash(~/.bashrcに追加)
eval "$(vfox activate bash)"

# Zsh(~/.zshrcに追加)
eval "$(vfox activate zsh)"

# PowerShell($PROFILEに追加)
if (-not (Test-Path -Path $PROFILE)) { 
    New-Item -Type File -Path $PROFILE -Force 
}
Add-Content -Path $PROFILE -Value 'Invoke-Expression "$(vfox activate pwsh)"'

# Fish(~/.config/fish/config.fishに追加)
vfox activate fish | source

# Clink(Windows)
vfox activate clink > %LOCALAPPDATA%\clink\vfox.lua

基本的な使い方

# 利用可能なプラグイン一覧
vfox available

# プラグインの追加
vfox add nodejs
vfox add python
vfox add java

# バージョンの検索
vfox search nodejs
vfox search python

# 特定バージョンのインストール
vfox install [email protected]
vfox install [email protected]
vfox install java@21

# 最新バージョンのインストール
vfox install nodejs@latest
vfox install erlang@latest

プロジェクトでのバージョン管理

# プロジェクトディレクトリで実行
cd /path/to/my-project

# ローカルバージョンの設定
vfox use [email protected]
vfox use [email protected]

# .tool-versionsファイルが生成される
# nodejs 20.10.0
# python 3.12.0

# プロジェクトに入ると自動的にバージョン切り替え
cd ..
node --version  # システムデフォルト
cd my-project
node --version  # 20.10.0

グローバル設定

# グローバルバージョンの設定
vfox use -g [email protected]
vfox use -g [email protected]

# グローバル設定の確認
cat ~/.version-fox/.tool-versions

# 現在のバージョン確認
vfox current
vfox current nodejs

Windows環境での活用

# PowerShellでの設定例
# Erlang/OTPのインストール(Windows対応)
vfox add erlang
vfox install [email protected]
vfox use [email protected]

# Elixirのインストール(Windows対応)
vfox add elixir
vfox install [email protected]
vfox use [email protected]

# .NETのインストール
vfox add dotnet
vfox install [email protected]
vfox use [email protected]

# 環境変数の確認
vfox env

レガシー設定ファイルのサポート

# .nvmrcを使用するプロジェクト
echo "20.10.0" > .nvmrc
vfox install  # 自動的に.nvmrcを読み取り

# .node-versionを使用するプロジェクト
echo "20.10.0" > .node-version
vfox install

# .python-versionを使用するプロジェクト
echo "3.12.0" > .python-version
vfox install

プラグイン管理

# インストール済みプラグインの確認
vfox list

# プラグインの更新
vfox update nodejs

# プラグインの削除
vfox remove nodejs

# カスタムプラグインの追加
vfox add --source https://github.com/version-fox/vfox-nodejs/releases/download/latest/vfox-nodejs.zip nodejs

CI/CD環境での使用

# GitHub Actions例
name: CI
on: [push]

jobs:
  test:
    runs-on: windows-latest  # Windows環境でも動作
    steps:
      - uses: actions/checkout@v4
      
      - name: Install vfox
        run: |
          irm https://raw.githubusercontent.com/version-fox/vfox/main/install.ps1 | iex
          
      - name: Setup tools
        run: |
          vfox add nodejs
          vfox install nodejs@20
          vfox use nodejs@20
          
      - name: Run tests
        run: npm test

環境の切り替えと管理

# 一時的なバージョン使用
vfox use [email protected] --session

# プロジェクト固有の設定
vfox use [email protected] --project

# 環境情報の表示
vfox info nodejs

# キャッシュのクリア
vfox cache clean

# アンインストール
vfox uninstall [email protected]

トラブルシューティング

# デバッグモード
VFOX_DEBUG=1 vfox install nodejs

# 設定の確認
vfox config list

# ヘルスチェック
vfox doctor

# ログの確認
cat ~/.version-fox/logs/vfox.log

# 完全な再インストール
vfox remove nodejs
vfox add nodejs
vfox install nodejs@latest