# 【Volta】複数プロジェクトで共通のNode.jsバージョンを共有する方法

> Voltaを使用して複数プロジェクトで共通のNode.jsバージョンを共有する方法について解説します。

- 公開日: 2024-10-28
- 更新日: 2024-10-28
- 著者: Tsukamura
- タグ: Node.js
- URL: https://tech.anycloud.co.jp/articles/volta-workspace

---

Voltaというツールをご存知でしょうか？

今回の記事では１つのリポジトリの複数プロジェクトでnode.jsのバージョンを共有したいと思い、それがVoltaで実現できたのでその方法を書いていきます！

## **Voltaの簡単な概要**

Voltaは、JavaScriptツールの管理を簡単かつ効率的に行うためのツールマネージャーです。

主な特徴は以下の通りです。（[https://volta.sh](https://volta.sh/）))

-   高速：Rust製でどうやらはやいみたいです
-   信頼性：プロジェクト内で全員が同じツールを使用できるようにします。
-   汎用性：パッケージマネージャー、Node.jsランタイム、OSに関係なく、volta installコマンド一つで必要なツールをインストールできます。

ぼくが気に入っている点はディレクトリに入るとnode.jsのバージョンが自動で切り替わることです。このおかげでローカル環境のnode.jsバージョンを意識することもなく日々快適な生活を送れています。

あとロゴがかわいいのも推しポイントですね。

<figure><img src="./image-001.webp" alt="Volta LOGO" width="1278" height="494"></figure>

## **プロジェクトでバージョンを選択する方法**

Voltaを使用してプロジェクト固有のNode.jsやパッケージマネージャーのバージョンを指定するには、以下の手順を実行します

1.  プロジェクトのルートディレクトリに移動します。
2.  以下のコマンドを実行して、プロジェクト用のNode.jsバージョンを設定します
    
    ```shell
    volta pin node@<バージョン>
    ```
    
3.  必要に応じて、npmやyarnなどのパッケージマネージャーのバージョンも指定できます
    
    ```shell
    volta pin npm@<バージョン>
    ```
    
    ```shell
    volta pin yarn@<バージョン>
    ```
    

これらのコマンドを実行すると、package.jsonファイルにvoltaセクションが追加され、指定したバージョンが記録されます。

## **複数プロジェクトでVoltaの設定を共有する方法**

1つのリポジトリに複数のプロジェクトがあり、それらすべてでVoltaの設定を共有したい場合は、以下の手順で設定できます：

1.  リポジトリのルートにpackage.jsonファイルを作成し、共有したいVolta設定を記述します
    
    ```json
    {
      "volta": {
        "node": "<共有するNodeバージョン>",
        "npm": "<共有するnpmバージョン>",
        "yarn": "<共有するyarnバージョン>"
      }
    }
    ```
    
2.  各プロジェクトのpackage.jsonファイルに以下の設定を追加します
    
    ```json
    {
      "volta": {
        "extends": "../package.json"
      }
    }
    ```
    

この設定により、各プロジェクトはリポジトリのルートにあるpackage.jsonファイルのVolta設定を継承します。特定のディレクトリで作業したい時、自動でバージョンが切り替わるのでとても便利ですね！

Voltaのセットアップも結構かんたんなので、ぜひためしてください(｀・ω・´)
