vfox
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
スター履歴
データ取得日時: 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