見出し画像

WindowsでNode.jsのバージョン管理 - VOLTA v1.1.1

1. はじめに


2023年04月の更新があるなど現在でもメンテナンスが行われています
早いしフォルダ毎(package.json)ごとでバージョン管理できたりと、他のバージョン管理ツールより断然オススメです!
ではNode.js, npm の最新バージョンを使えるようにしてみましょう
※2023年09月時点での感想になります

2. 開発者モードを オン にする


まずはWindowsの設定から開発者モードを オン にしましょう
オフのままではパッケージのインストールに失敗したりするようです

Windowsの設定( Winキー + i )から更新とセキュリティを選択

更新とセキュリティをぽち

この時、他のページが開いてしまったら左上のホームを選択して ↑ へ

ホームをぽち

左メニュの開発者向けを選択する

開発者向けをぽち

開発者モードをオンにする

開発者モードのスイッチをぽち
はいをぽち

3. VOLTA をダウンロードする


以下、2023年09月 時点での説明になるので注意

ますは以下の公式サイトへ

中央の「Get Started →」のボタンを押す

Get Started → をぽち

中央少し下にある「download and run the Windows installer」をクリック

download and run the Windows installer をぽち

4. VOLTAをインストールする


volta-1.1.1-windows-x86_64.msi を実行する

Nextをぽち
Nextをぽち
Installをぽち
Finishをぽち

5. VOLTAのバージョンを確認する


コマンドプロンプトで volta を実行する
以下のように 1行目 にバージョンが表示されます

> volta
Volta 1.1.1
The JavaScript Launcher ⚡

    To install a tool in your toolchain, use `volta install`.
    To pin your project's runtime or package manager, use `volta pin`.

USAGE:
    volta [FLAGS] [SUBCOMMAND]

FLAGS:
        --verbose    Enables verbose diagnostics
        --quiet      Prevents unnecessary output
    -v, --version    Prints the current version of Volta
    -h, --help       Prints help information

SUBCOMMANDS:
    fetch          Fetches a tool to the local machine
    install        Installs a tool in your toolchain
    uninstall      Uninstalls a tool from your toolchain
    pin            Pins your project's runtime or package manager
    list           Displays the current toolchain
    completions    Generates Volta completions
    which          Locates the actual binary that will be called by Volta
    setup          Enables Volta for the current user / shell
    run            Run a command with custom Node, npm, pnpm, and/or Yarn versions
    help           Prints this message or the help of the given subcommand(s)

6. Node.js と npm をインストールする


コマンドプロンプトで volta install node を実行する
Nodistときにやっていた公式でLTSバージョンを比較する必要はありません
実はこれで最新のLTSバージョンをインストールしてくれます
さらにnpmも同時にインストールされるすぐれもの

> volta install node
⠁ Fetching public registry: https://nodejs.org/dist/index.json
\ Fetching public registry: https://nodejs.org/dist/index.json
| Fetching public registry: https://nodejs.org/dist/index.json
success: installed and set node@18.17.1 (with npm@9.6.7) as default

7. Node.js と npm のバージョンを確認する


node -v、npm -v を実行する
すると下記画像の一番上のバージョンになっていることが確認できます

2023年09月 現在のNode.js LTS版バージョン
> node -v
v18.17.1

> npm -v
9.6.7

特定バージョンの Node.js をインストールする

例えば1つ前のLTSバージョンとなる 16.20.2 をインストールしてみます

コマンドプロンプトで volta fetch node@16.20.2 を実行する
まずはこれでダウンロードします

> volta fetch node@16.20.2
success: fetched node@16.20.2 (with npm@8.19.4)

次はデフォルトバージョンを ダウンロードしたバージョンに切り替えます

> volta install node@16.20.2
success: installed and set node@16.20.2 (with npm@8.19.4) as default

バージョンを確認すると切り替わっていることが確認できます

> node -v
v16.20.2

> npm -v
8.19.4

8. フォルダ単位でバージョンを指定する


コマンドプロンプトで 指定フォルダ に移動する
(ここではC:¥work¥TestProject)

C:\>cd C:\work\TestProject
C:\work\TestProject> 

そこで volta pin node@18.17.1 として実行してみよう
すると以下のようにこのフォルダではバージョンが変更されます

C:\work\TestProject>volta pin node@18.17.1
success: pinned node@18.17.1 (with npm@9.6.7) in package.json

C:\work\TestProject>node -v
v18.17.1

C:\work\TestProject>npm -v
9.6.7

例として1つ上の C:¥work フォルダで node と npm のバージョンを確認すると、以下のようにデフォルトバージョンとして指定した node v16.20.2、npm v8.19.4 で動作することが確認できます

C:\work>node -v
v16.20.2

C:\work>npm -v
8.19.4

対象フォルダにある package.json の末尾に以下のような指定が追加されこれをみて管理しているようです
システムによってバージョンが違うと思ますのでこれで切り替えるようにすると意識せずに色々と作業できるようになるのではないでしょうか

VOLTAの導入と node の npm のインストールの説明は以上です
おつかれさまでした

9. 不要な Node.js バージョンを削除する


残念ながら、volta uninstall コマンドはまだ使えません
公式サイトでもごめんチャイってなっていました

まずはインストールしたNode.jsのバージョンを確認してみる
volta list node を実行してみよう

※ 実はこっそり volta install node@8.17.0 を実行しています
 今回はこれを削除してみたいと思います

こんな感じでインストールした Node.js の一覧が表示できます

> volta list node
⚡️ Node runtimes in your toolchain:

    v8.17.0
    v16.20.2 (default)
    v18.17.1 (current @ C:\work\TestProject\package.json)

削除するにはフォルダを丸ごと削除するコマンドを実行する必要があります
例えば nodeのv8.17.0を削除したい場合は以下のフォルダを削除します

%LOCALAPPDATA%\Volta\tools\image\node\8.17.0

これを「rmdir /s」コマンドでフォルダごと削除するのですが
dir コマンドで流石に怖いので存在チェックをしましょう

> dir %LOCALAPPDATA%\Volta\tools\image\node\8.17.0
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は C64D-BDE5 です

 C:\Users\xxxxx\AppData\Local\Volta\tools\image\node\8.17.0 のディレクトリ

2023/09/06  16:58    <DIR>          .
2023/09/06  16:58    <DIR>          ..
2023/09/06  16:57            56,071 CHANGELOG.md
2023/09/06  16:57            60,230 LICENSE
2023/09/06  16:57        23,069,848 node.exe
2023/09/06  16:57               702 nodevars.bat
2023/09/06  16:57            10,630 node_etw_provider.man
2023/09/06  16:57    <DIR>          node_modules
2023/09/06  16:58             4,974 node_perfctr_provider.man
2023/09/06  16:58               930 npm
2023/09/06  16:58               483 npm.cmd
2023/09/06  16:58               922 npx
2023/09/06  16:58               539 npx.cmd
2023/09/06  16:58            28,176 README.md
              11 個のファイル          23,233,505 バイト
               3 個のディレクトリ  83,147,309,056 バイトの空き領域

バッチリありましたね
では dir の部分を rmdir /s に置き換えて実行しましょう

> rmdir /s %LOCALAPPDATA%\Volta\tools\image\node\8.17.0
C:\Users\xxxxx\AppData\Local\Volta\tools\image\node\8.17.0、よろしいですか (Y/N)? y

削除されたか、もう一度Node.js の 一覧を確認してみましょう
問題なく削除されていますね

> volta list node
⚡️ Node runtimes in your toolchain:

    v16.20.2 (default)
    v18.17.1 (current @ C:\work\TestProject\package.json)

10. おわりに


どうでしたでしょうか?あれ?もう終わり?
という感じではなかったでしょうか?
導入も操作も簡単なのでぜひ使ってみてください


この記事が気に入ったらサポートをしてみませんか?