あらすじ
Windowsのローカル環境でnodejsを使って開発を行いたいときのベストプラクティスを紹介します。
dockerやWSLを使うのが理想ですが、「マシンスペック的にVMを起動すること自体がおっくうな場合」もしくは、「Windows Server Core などを本番環境に使用する予定」などのための記事とします。
2022年4月現在の最新情報です。
筆者は現在、Voltaをメインで使用しています。nvmは使っていません。
前提
下記ソフトウェアがインストール済みとします。
- Windows 10 or Later
- Powershell 7 or Later
もし、他のnodejs用のバージョン完了ツールや、nodejs公式のインストーラーを使用したインストールが行われている場合、事前に全て消しましょう。特に、環境変数は厄介なので、慎重に確認して消しましょう。筆者は、ProgramFilesが2個あることに気が付かず時間を無駄にしました。
やること
やることは、下記の通りです。
-
nvmのインストール -
nodeのインストール -
npmの更新
環境変数pathは、nvmについてはnvmのインストーラーが、それ以外はnvmのコマンドで、それぞれ自動的に設定されます。
nvm
nvmをインストールしましょう。
公式サイトからインストールする場合は、こちらからnvm-setup.zipをダウンロードします。
Linux と Mac 用のnvmとは別の開発者によるソフトウェアです。設計思想を始め、完全な互換性は無いことに留意してください。
nvm-update.zipやnvm-noinstall.zipなど別の利用方法も用意されていて親切ですね。
chocolateyを使ってもいいと思います。その場合は下記のコマンドを使います。
choco install nvm
上記のzipファイルを解凍するとnvm-setup.exeが入っているので、ウィザードに従ってインストールを進めていきます。この時の注意点として 「インストール中に指定できるディレクトリは、空白文字を含めないように変更」 する必要があります。nvm useが空白文字を含むディレクトリを処理できないため、エラーになります。しかもこの時のエラーメッセージは 文字化け しているため、非常に厄介です。
最終的に、筆者の環境変数は下記の表の状態になりました。
環境変数pathには、%NVM_HOME%と%NVM_SYMLINK%が追記されていました。
| 環境変数名 | 値 |
|---|---|
| NVM_HOME | C:\Users\who\AppData\Roaming\nvm |
| NVM_SYMLINK | C:\nodejs |
node
nvmのインストールが終わったら、nodeをインストールしましょう。nvm installというコマンドで好きなバージョンをインストールすることができます。このとき、メジャーバージョンで16などを指定すれば、そのマイナーバージョンは最新が入ります。直接nvm install 16.14.2などと細かく指定することもできます。
nvm install 16 # node のLTSバージョンは現在16なので16をインストール
上手くいったら、次にnvm use 16.14.2として、インストールしたnodejsの中から使うものを指定します。
nvm use 16.14.2
npm
nodeのインストールが終わったら、npmを更新しましょう。現在使用しているnodeの環境に存在しているnpmコマンドが使えるようになっているはずです。
まず、診断コマンドを実行します。
npm doctor
この時点で、多くの場合、npmのrecomended versionでは無く、少し古いバージョンになっていると思います。
そこで、npmだけを更新するコマンドを実行します。
npm i -g npm
もう一度npm doctorを実行して、npm -vがokになっていれば成功です。
もし、ここで他の項目にエラーが有れば、エラーが無くなるまでdoctorを繰り返し実行しながら、キレイな状態にしましょう。
まとめ
要点をまとめます。
- nvm-windowsをインストール
- 好きなバージョンのnodeをインストール
- その環境でnpmを更新
- npm doctor で診断
doctorがあるのは非常に心強いですね。cliを作る時、もしくは使う時にはdoctorコマンドの有無を重視してもいいかもしれません。
Excelsior!