- Windows
-
2025-03-11 - 更新:2025-03-20
プロジェクト毎にNode.jsのバージョンを管理したいときに便利なツール「fnm(Fast Node Manager)」の導入方法をご紹介します。
他にも同様のツールがありますが、導入のしやすさと定期的にメンテナンスされているという点で「fnm」を選択しました。
Chocolateyをインストール
まずはfnmの導入に必要なパッケージマネージャー「Chocolatey」をインストール
https://chocolatey.org/install
PowerShellを管理者として実行し、以下のコマンドを実行
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
インストールできたか確認してみましょう。
choco -v > 2.4.3
fnmのインストール
早速fnmをインストールしてみます。
choco install fnm -y
プロジェクトごとに指定されたNode.jsのバージョンを使うというPowerShellで実行するコマンドをPowerShellの起動スクリプトに追記します。
起動スクリプトが存在しない場合は新規で作成します。
fnm env --use-on-cd | Out-String | Invoke-Expression
起動スクリプトのパスは$profile
と入力すると表示されます。
例)Windows10 PowerShell5.1の場合
> $profile C:\Users\{username}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
正常にインストールが完了したか確認
fnm -V > fnm 1.38.1
又、wingetというWindowsのパッケージマネージャーを使ってもインストールすることができます。
https://learn.microsoft.com/ja-jp/windows/package-manager/
fnmのインストール
winget install Schniz.fnm
公式サイトにもwinget+fnmを使ったインストール方法が記載されています。2025/03/10時点
https://nodejs.org/ja/download
ただし、Windows PowerShellでwingetコマンドを実行するとターミナルが文字化けしてしまうことがあるようです。
これはwingetを実行している間、フォントが勝手に変更されてしまうことが原因のようです。
予めデフォルトのフォントをMSゴシック以外のフォントに設定しておけば回避できます。
又、Windows Terminalでの実行であればPowerShellでも文字化けしないようです。
https://apps.microsoft.com/detail/9n0dx20hk701?hl=ja-JP&gl=JP
wingetでインストールした場合もPowerShellの起動スクリプトについてはChocolateyでインストールして時と同様の作業が必要です。
