Windowsでnode.js環境設定メモ

# 概要

久しぶりにWindows機で開発環境を整えたので、備忘録として。
大したことはしていません。

## 環境

- マシン：Surface Laptop 4
- Windows 11 Home
- Visual Studio Codeはインストールしておく

## 何をセットアップするか

以下を使えるようにするだけです。

- PowerShell 7.1
    - vscodeへの反映
- git
- node.js
    - バージョン切り替えつき


## PowerShell 7.1への切り替え

デフォルトでは PowerShell 5.1 だったので、PoserShell 7.2 に変更。
以下よりLTSをダウンロード。
https://github.com/PowerShell/PowerShell

インストールすると、5.1と共存する形で7.2のPowerShellが入るので、インストール後はそちらを起動して利用するようにすればよいだけ。
もし、ターミナルを利用している場合は、[設定]を開き、[スタートアップ]ページにある[既定のプロファイル] で、インストールした PowerShellを選択すればよい。
バージョンが表示されていないので、確認したい場合は、左メニューの[PowerShell]を開き、[コマンドライン] で指定されているパスが、PowerShell7への参照になっていればOK

> PowerShell 7 のインストール先は`C:\Program Files\PowerShell\7\pwsh.exe`


### vscodeへの反映

VisualStudio Code のデフォルトのterminalはPowerShell 5.1になっているので、これも設定メニューから変更可能
[ユーザ設定] - [設定] - [機能] - [ターミナル]を開き、[Windows Exec]の項目で、PowerShell7のモジュールを指定すればOK（今回の場合だと`C:\Program Files\PowerShell\7\pwsh.exe` を指定)

再起動すると反映される

## gitのインストール

gitをインストール。
以下より、ダウンロードしてインストールする。
各ウィザードの設定内容はデフォルトのままでほとんどOK（わかる人だけ変更すればいい）
https://gitforwindows.org/

インストーラのくせに、環境変数への設定はしてくれないので、自分で環境変数の設定をする。
（割愛）

## node.jsのインストール

node.jsをインストールする前に、Windowsにデフォルトで入っているパッケージ管理ツール「Chocolatey」が微妙とのネットの記事を読んだので、その記事通りに「scoop」を導入。

https://scoop.sh/
上記ページを開き、Quickstartに記載のコマンドを実行すればインストールされる

インストールされたか、コマンドを実行してみて以下のように認識されればOK

```powershell
PS > scoop -v
Current Scoop version:
v0.3.0 - Released at 2022-10-10
```

次にnode.jsのバージョン管理ツールを入れる。
こちらも先ほどのネット記事の通りNodistは微妙なのでnvmを使えとの教えの通りnvmをインストール

```powershell
PS > scoop install nvm
PS > nvm -v
1.1.10
```

こちらも、nvmのバージョンが表示されればOK
nvm --help で各コマンドの使い方を確認。


### インストールできるnode.jsのバージョンを確認する

```powershell
PS > nvm list available

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|    19.0.1    |   18.12.1    |   0.12.18    |   0.11.16    |
|    19.0.0    |   18.12.0    |   0.12.17    |   0.11.15    |
|   18.11.0    |   16.18.1    |   0.12.16    |   0.11.14    |
|   18.10.0    |   16.18.0    |   0.12.15    |   0.11.13    |
|    18.9.1    |   16.17.1    |   0.12.14    |   0.11.12    |
|    18.9.0    |   16.17.0    |   0.12.13    |   0.11.11    |
|    18.8.0    |   16.16.0    |   0.12.12    |   0.11.10    |
|    18.7.0    |   16.15.1    |   0.12.11    |    0.11.9    |
|    18.6.0    |   16.15.0    |   0.12.10    |    0.11.8    |
|    18.5.0    |   16.14.2    |    0.12.9    |    0.11.7    |
|    18.4.0    |   16.14.1    |    0.12.8    |    0.11.6    |
|    18.3.0    |   16.14.0    |    0.12.7    |    0.11.5    |
|    18.2.0    |   16.13.2    |    0.12.6    |    0.11.4    |
|    18.1.0    |   16.13.1    |    0.12.5    |    0.11.3    |
|    18.0.0    |   16.13.0    |    0.12.4    |    0.11.2    |
|    17.9.1    |   14.21.1    |    0.12.3    |    0.11.1    |
|    17.9.0    |   14.21.0    |    0.12.2    |    0.11.0    |
|    17.8.0    |   14.20.1    |    0.12.1    |    0.9.12    |
|    17.7.2    |   14.20.0    |    0.12.0    |    0.9.11    |
|    17.7.1    |   14.19.3    |   0.10.48    |    0.9.10    |

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

### node.jsの指定バージョンをインストールする

```powershell
PS > nvm install 14.21.1
Downloading node.js version 14.21.1 (64-bit)...
Complete
Creating C:\Users\dev\scoop\persist\nvm\nodejs\temp

Downloading npm version 6.14.17... Complete
Installing npm v6.14.17...

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

nvm use 14.21.1
PS > 
```

### 指定のバージョンを利用する

```powershell
PS > nvm use 16.18.1
Now using node v16.18.1 (64-bit)
```

### 今設定されているnode.jsのバージョンを確認する

```powershell
PS > nvm current
v16.18.1
```

### 現在インストールされている利用可能なnode.jsのバージョン

```powershell
PS > nvm list

  * 16.18.1 (Currently using 64-bit executable)
    14.21.1
```


### npm, nodeのバージョンを確認する

nvmでnodeを設定すると、先ほどまで以下のように認識されていなかったコマンドが

```powershell
PS > node -v
node: The term 'node' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
```


このように認識される。nodeとともにnpmのバージョンも表示されればOK

```powershell
PS > node -v
v16.18.1
PS > npm -v
8.19.2
```