nvm-windows の導入と簡単な操作をやってみた

# はじめに
node.js をいじりたい欲が湧いてきたので、開発マシンにインストールしてみました。
node.jsはアップデートが頻繁に行われるため、バージョン管理ツールを使うのが良いらしい。
という訳で、バージョン管理ツールは nvm-windows を使います。

このページでは、先人たちがまとめた記事を参考に自分がやったことを（:beginner: 記事を書く練習も兼ねて）まとめています。

# やったこと
Windows10 (64bit) の PC に nvm-windows と node.js のインストールし、
node.js のバージョン管理の初歩的な操作をやっています。

# nvm-windows のインストール
はじめに nvm-windows をインストールします。

## 手順
1. https://github.com/coreybutler/nvm-windows/releases から任意のバージョンの ***nvm-setup.zip*** をダウンロードします。
（2021年11月7日時点の最新バージョンは 1.1.8）
1. ***nvm-setup.zip*** を解凍すると ***nvm-setup.exe*** があるので実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604311/25402d48-c377-562d-f24f-65d80e60f160.png)

1. ライセンスに同意し、次へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604311/237f49e1-70d3-8435-1d2b-0936a1350e3c.png)

1. インストール先を指定し、次へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604311/54ffcabd-3edd-a935-10fc-480e34aeacdd.png)

1. シンボリックリンクの作成先を指定し、次へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604311/5f4e8213-4623-8951-e816-6055789d6259.png)

1. インストールを実行し、完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604311/aa33acae-0225-2f98-4f26-229d997c3335.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604311/2cc7facd-87b0-12b6-2bb7-3e85856db973.png)

## 確認
コマンドプロンプトを開き、インストールしたバージョンが表示されることを確認します。

```console
> nvm version
1.1.8
```

:pencil: 備考
nvmコマンドが実行できない場合、環境変数に`NVM_HOME`（インストール先フォルダ）や `NVM_SYMLINK`（シンボリックリンクの作成先フォルダ）が登録されているかを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604311/c4e9c0af-2cef-293d-ba9a-fc363f1879d5.png)


# Node.jsのインストール
続いて、nvm-windows を使って node.js をインストールしていきましょう。
Node.js と一緒に npm もインストールされます。

## 手順
コマンドプロンプトでインストールを行います、
インストールは場合に応じたコマンドを実行。今回はLTS(推奨版)の ***16.13.0*** をインストールします。 
　最新バージョンをインストールする場合： `nvm install latest` 
　特定バージョンをインストールする場合： `nvm install (バージョン)`

　[参考] [Node.js 公式ページにおけるリリース一覧](https://nodejs.org/download/release/)

```console
> nvm list available  # インストール可能なNode.jsのバージョンを確認します

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|    17.0.1    |   16.13.0    |   0.12.18    |   0.11.16    |
|    17.0.0    |   14.18.1    |   0.12.17    |   0.11.15    |
|   16.12.0    |   14.18.0    |   0.12.16    |   0.11.14    |
|   16.11.1    |   14.17.6    |   0.12.15    |   0.11.13    |
|   16.11.0    |   14.17.5    |   0.12.14    |   0.11.12    |
|   16.10.0    |   14.17.4    |   0.12.13    |   0.11.11    |
|    16.9.1    |   14.17.3    |   0.12.12    |   0.11.10    |
|    16.9.0    |   14.17.2    |   0.12.11    |    0.11.9    |
|    16.8.0    |   14.17.1    |   0.12.10    |    0.11.8    |
|    16.7.0    |   14.17.0    |    0.12.9    |    0.11.7    |
|    16.6.2    |   14.16.1    |    0.12.8    |    0.11.6    |
|    16.6.1    |   14.16.0    |    0.12.7    |    0.11.5    |
|    16.6.0    |   14.15.5    |    0.12.6    |    0.11.4    |
|    16.5.0    |   14.15.4    |    0.12.5    |    0.11.3    |
|    16.4.2    |   14.15.3    |    0.12.4    |    0.11.2    |
|    16.4.1    |   14.15.2    |    0.12.3    |    0.11.1    |
|    16.4.0    |   14.15.1    |    0.12.2    |    0.11.0    |
|    16.3.0    |   14.15.0    |    0.12.1    |    0.9.12    |
|    16.2.0    |   12.22.7    |    0.12.0    |    0.9.11    |
|    16.1.0    |   12.22.6    |   0.10.48    |    0.9.10    |

This is a partial list. For a complete list, visit https://nodejs.org/download/releases

> nvm install 16.13.0   # 16.13.0 をインストールします
Downloading node.js version 16.13.0 (64-bit)...
Extracting...
Complete


Installation complete. If you want to use this version, type

nvm use 16.13.0

> nvm use 16.13.0  # インストールしたバージョンを既定のバージョンにします。
Now using node v16.13.0 (64-bit)
```
:pencil: 備考
node.jsのバージョン切り替えは環境変数の`NVM_SYMLINK`で指定したシンボリックリンクの向き先を切り替えているみたい。
なので、シンボリックリンクの編集に管理者権限が必要な場合は、コマンドプロンプトは管理者権限で実行してください。
シンボリックリンク作成先はデフォルトのままだと Program Files フォルダ内に作成されるため、管理者権限が必要になると思います。
管理者権限が必要なのに通常のプロンプトでバージョンを切り替えたら、こんなエラーが出てきました。

```console
> nvm use 16.13.0
exit status 5: �A�N�Z�X�����ۂ����܂����B
```


## 確認
- インストール済みのバージョンを表示し、指定したバージョンが既定のバージョンになっているか確認します。

```console
> nvm list
    17.0.1
  * 16.13.0 (Currently using 64-bit executable)
```
  
:pencil: 備考 
＊ が付いている方が既定のバージョンです。


- node.js、npm のバージョンを確認し、インストールした数字が出てきたらヨシ！

```console
> node -v
v16.13.0

> npm -v
8.1.0
```

# nvm-windows で node.js のバージョン切り替え
使用する node.js のバージョンを切り替えてみましょう。
と言っても、`nvm use (使用するバージョン)` を実行するだけです :smile: 

## 手順
***16.13.0*** から ***17.0.1*** にバージョンを切り替えてみます。

```console
> nvm list # 使用中のバージョンを確認します
    17.0.1
  * 16.13.0 (Currently using 64-bit executable)

> nvm use 17.0.1  # 17.0.1にバージョンを切り替えます
Now using node v17.0.1 (64-bit)

> nvm list  # 使用中のバージョンが変わったことを確認します
  * 17.0.1 (Currently using 64-bit executable)
    16.13.0

> node -v  # node.js のバージョンを確認します
v17.0.1

> npm -v   # npm のバージョンを確認します
8.1.0
```

# node.js のインストール済みのバージョンを削除
nvm-windows でインストール済みのバージョンを削除することもできます。
（環境変数の`NVM_HOME`で指定しているフォルダ内にある フォルダ を削除するだけでもよさそう）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604311/06596f7f-7771-0ccd-b50d-71c00de56fbf.png)

## 手順
***17.0.1*** のバージョンを削除します。

```console
> nvm list # 使用中のバージョンを確認します
    17.0.1
  * 16.13.0 (Currently using 64-bit executable)

> nvm uninstall 17.0.1  # 削除したいバージョンを指定し、アンインストールします
Uninstalling node v17.0.1... done

> nvm list  # 削除したバージョンがなくなっていることを確認します
  * 16.13.0 (Currently using 64-bit executable)
```

# まとめ
nvm-windows、node.js のインストールができました。
node.js のバージョン管理って簡単にできるんですね :hugging: 


# 参考
下記ページを参考に作業しました。
ありがとうございます。
https://github.com/coreybutler/nvm-windows/wiki
[WindowsでNode.js環境構築](https://qiita.com/ha6_6ru/items/d78d8294dba923792d6a)
[nvm-windowsでnode.jsのバージョン管理をする【Windows】](https://qiita.com/nezumori/items/504b26d26f3e6e3009e3)
[nvm-windows 導入 zip版](https://qiita.com/yutakachi/items/6e9d891789b9a652c318)


# 変更履歴
- 2024年1月5日 node.jp のリリース一覧ページの参照先を変更。（リンク切れのため）