🤖

WindowsでNode.js環境を構築する

2020/12/08に公開1

仕事で Windows マシンを触っているので、すごく久々に Windows で Node.js 環境を構築しました。

WSL2 を使える前提であれば、WSL2 + anyenv + nodenv が、現時点での選択肢としては最善かなという気がしています。

ただ、様々な事情により Windows Native の Node.js を構築しなければいけない状態で、七転八倒した僕の結論としては、scoop + nvm がベターチョイスということになりました。

  • Chocolatey ではなく scoop を使う
  • Nodist ではなく nvm を使う

この 2 点だけ覚えておけば大丈夫です。

これ以後の記事はおまけです。

パッケージ管理ツールに Chocolatey ではなく scoop を使う

Windows のパッケージ管理の定番は、Chocolateyです。ところが Chocolatey は、執拗なまでに管理者権限(UAC ポップアップ)を求めてくるという問題点があります。

Scoopは、極力 UAC ポップアップを出さないパッケージ管理ツールです。

インストール方法は https://scoop.sh/ を御覧ください。

Make sure PowerShell 5 (or later, include PowerShell Core) and .NET Framework 4.5 (or later) are installed. Then run:

Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

# or shorter
iwr -useb get.scoop.sh | iex

Note: if you get an error you might need to change the execution policy (i.e. enable Powershell) with

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

Scoop がインストールされればあとは nvm をインストールするだけです。

Node.js バージョン管理ツールに Nodist ではなく nvm を使う

nullivex/nodist は大変使い勝手のよいパッケージマネージャですが 、開発がもう 2 年ほど止まっている状態であり npm の取り扱いに致命的な難点があります。

Nodist でインストールを行った場合 npm は、バージョン 6.9 というとても古いバージョンのものがインストールされます。この 6.9 は、Node 14 では動作しません。

また、いまは当たり前に使われる npx コマンドも、Nodist ではインストールできません。

これらの問題があるため、Nodist で npm/npx を最新版にアップデートするためには、何段階かの手順を踏まないといけません。

方法はあるとしても nvm を使えばしなくていいような苦行をする必要はありません。

scoop install nvm

そこで、scoop を使い nvm をインストールするのです。

nvm install 14.15.1
nvm use 14.15.1

もし、あなたの環境に Nodist が残っている場合は削除すべきです。

Discussion

KisamaKisama

Scoopでインストールされるnvmは、実はnvm-windowsのほうでして、これは最後のリリースが2018年で止まっています。
ScoopでNode.jsに複数バージョンをインストールするのなら、各種アプリの過去バージョンが収められているversionsバケットを利用するのがよいと思います。
scoop install nodejs nodejs14 nodejs12 などのように複数インストールしてから scoop reset nodejs14 などとするとバージョンを使い分けられます。