Volta の理解
Volta の動作原理
Volta は、現在のディレクトリに基づいて適切なバージョンにルーティングするシムを作成することで、JavaScript コマンドラインツールを管理します。これにより、異なるプロジェクトが同じツールの異なるバージョンを使用できるようになり、追加の設定は不要です。
シムシステム
Volta をインストールすると、PATH に小さなシムのセットが追加されます:
node
用のシム- 各パッケージマネージャー(
npm
、yarn
、pnpm
など)用のシム - インストールした各グローバルパッケージ用のシム
これらのシムは小さな実行可能ファイルで、以下の方法で実行するツールの実際のバージョンを決定します:
- 固定されたツールバージョンを持つプロジェクト内にいるかチェック
- プロジェクト固有のバージョンが見つからない場合は、デフォルトバージョンを使用
プロジェクト固有バージョン
Volta はプロジェクトのツール要件を package.json
ファイルの volta
セクションに保存します:
json
{
"volta": {
"node": "16.15.1",
"npm": "8.11.0"
}
}
この設定を持つディレクトリでコマンドを実行すると、Volta は自動的にこれらの正確なバージョンを使用することを保証します。
デフォルトバージョン
固定バージョンのないプロジェクト外の場所では、Volta はデフォルトツールを使用します。これらは以下のコマンドで設定できます:
bash
volta install node@16.15.1
volta install npm@8.11.0
なぜ Volta を選ぶのか?
一貫した環境
Volta はプロジェクトで作業するすべての人が全く同じツールチェーンを使用することを保証し、「私のマシンでは動作する」問題を排除します。
ゼロオーバーヘッド
他のバージョンマネージャーとは異なり、Volta はプロジェクトを変更する際にバージョンを切り替えるための追加コマンドを必要としません。ファイルシステムを移動する際に自動的に発生します。
高速パフォーマンス
Rust で構築された Volta は速度を考慮して設計されています。そのシムアーキテクチャは JavaScript ツールを実行する際の最小限のオーバーヘッドを意味します。
シームレス統合
Volta は既存の JavaScript 開発ワークフローと連携し、習慣やプロセスを変更する必要がありません。
一般的なワークフロー
新しいプロジェクトの開始
bash
# ディレクトリを作成してパッケージを設定
mkdir my-project && cd my-project
npm init -y
# Node.js と npm のバージョンを固定
volta pin node@16
volta pin npm@8
# 依存関係をインストール
npm install express
既存プロジェクトへの貢献
bash
# リポジトリをクローン
git clone https://github.com/example/project.git
cd project
# プロジェクトが package.json に volta 設定を持っている場合、
# 自動的に正しいツールが使用される
# ない場合は、追加できる
volta pin node@14
グローバルツールのインストール
bash
# グローバルパッケージをインストール
volta install typescript
# どこからでも使用可能
tsc --version