Skip to content

Node バージョンの固定

Volta の最も強力な機能の一つは、特定のツールバージョンをプロジェクトに固定し、プロジェクトで作業するすべての人が全く同じツールチェーンを使用することを保証する機能です。

なぜバージョンを固定するのか?

  • 一貫性:チームの全員が同じバージョンを使用
  • 再現性:ビルド環境が開発環境と一致
  • 信頼性:予期しないツール動作による意外な動作がない
  • オンボーディング:新しいチームメンバーが自動的に正しい設定を取得

Node.js の固定方法

特定の Node.js バージョンをプロジェクトに固定するには:

bash
volta pin node@16.14.2

このコマンドは:

  1. Node.js 16.14.2 をダウンロード・インストール(まだ存在しない場合)
  2. volta セクションで package.json を更新
  3. プロジェクトディレクトリで node を実行する際に Node.js 16.14.2 を使用するようプロジェクトを設定

package.json には以下が含まれるようになります:

json
{
  "volta": {
    "node": "16.14.2"
  }
}

パッケージマネージャーの固定

パッケージマネージャーの特定バージョンも固定できます:

bash
volta pin npm@8.5.0
volta pin yarn@1.22.18
volta pin pnpm@7.0.0

これにより、すべての人が同じパッケージマネージャーバージョンを使用することが保証され、ロックファイルの不整合やその他のバージョン問題を防ぎます。

npm を固定した後、package.json は以下のようになります:

json
{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  }
}

固定されたツールの使用

ツールが固定されると、追加のコマンドは必要ありません。プロジェクトディレクトリに移動して通常通りコマンドを実行するだけです:

bash
# これらはプロジェクトの固定バージョンを使用
node --version
npm --version

Volta は固定バージョンを持つディレクトリにいるときを自動検出し、デフォルトツールの代わりにそれらを使用します。

固定バージョンの更新

固定バージョンを更新するには:

bash
volta pin node@latest
volta pin npm@latest

または新しいバージョンを指定:

bash
volta pin node@18

ベストプラクティス

いつ固定するか

  • 本番アプリケーション:常に Node とパッケージマネージャーを固定
  • ライブラリ/パッケージ:コードが特定の Node 機能に依存している場合は Node を固定
  • ツール/ユーティリティ:機能に必要な最小 Node バージョンを固定

バージョン選択

  • アプリケーションの場合、Node の LTS(長期サポート)バージョンを選択
  • ライブラリの場合、サポートしたい最も古い Node バージョンを使用
  • セキュリティ修正の恩恵を受けるため定期的にバージョンを更新

CI/CD 統合

CI/CD パイプラインが固定バージョンを尊重することを確認:

  • GitHub ワークフローで Volta GitHub Action を使用
  • その他の CI システムでは、Volta をインストールすると自動的に固定バージョンが使用される