Windowsにおけるバージョン管理込みでのNode.jsインストール手段に微妙なものが多い問題
nodejs.org にある(あった)もの
fnm
Windows上でのインストールの問題に関するNode.jsチームからの繰り返しのpingにメンテナーが応じなかったため、Windows向けの公式インストール手段が nodejs.org から削除された
shell profileが必須
shell profile がないと PATH が設定されず、ツールがNode.jsを検出できず、ツール側で明示的にパスを設定する必要が出る
それでもNode.js関係者が「個人的にはこれ使ってておすすめ」と挙げる候補には入る
Unfortunately, none of the version managers listed on the website meet our requirements to be "Recommended", however, they are all excellent community choices.
残念ながら、ウェブサイトに掲載されているバージョンマネージャーのいずれも「推奨」基準を満たすものはありませんが、いずれも優れたコミュニティ製の選択肢です。
推奨基準について
Docker
Dockerインストールが必要……
Off-topic: Gotta love how the closest of an official thing we have for Windows is Docker lol.
余談:Windows向けの公式サポート環境としては、Dockerが一番近いというのは笑っちゃいますね(笑)。
そうだね🥴
Chocolatey
公式MSIインストーラをそのまま使っていて、同じ問題がある
インストール先フォルダ設定: choco install nodejs --install-arguments='INSTALLDIR="C:\nodejs"'
有料版Chocolateyだと --install-directory オプションがあるらしい
公式MSIインストーラ
要管理者権限
デフォルトで Program Files フォルダに入る
npm i -g の実行は問題ない。インストーラが %appdata%\npm に入るよう npmrc を配置する
ただインストール時に %appdata%\npm へのPATH設定がcurrent userにのみ行われるので、他ユーザーについては別途設定が必要
Node.js 24以下において、 corepack enable でのshims配置に管理者権限が必要
corepack enable --install-directory $env:APPDATA\npm pnpm yarn で対応可能ではある
Node.js 25以降は npm i -g corepack でcorepackを入れるようになったため解消
他
winget
デフォルトではMSIインストーラーを使用
インストール先フォルダ設定: winget install --location "C:\nodejs" OpenJS.NodeJS.LTS
--scope user または --installer-type portable でzip版から展開
%LOCALAPPDATA%\Microsoft\WinGet\Packages\OpenJS.NodeJS.LTS_<source>\node-v24.15.0-win-x64\ に展開
zip版から展開の場合、npmrc などはなし
→マイナー/パッチバージョン更新の度に npm 環境作り直し
nvm-windows
「後継のRuntimeを作っている」「新バージョンを公開するとアンチウイルスの誤検知によるメールがたくさん来る」ことを理由に、多くの要望があってPullRequestも出ている変更がなかなか入らない
作者の手元では直したらしい (2025-05-04) が、ずっとリリースされてない
2025-05-22 の投稿
リリースが公開されると、一定期間にわたって複数のウイルス対策ソフトがこれをウイルスとして検知する現象が発生します(多くのAVベンダーは精度の低い機械学習アルゴリズムを使用しているため、誤検知が多く発生します)。また、この件に関するガバナンス報告書や出所証明の発行も必要になります。政府機関、軍、金融機関などから、CrowdStrikeのレポートを含む多数の確認依頼メールが私のもとに殺到します。これらはすべて、当該ソフトウェアが確かに安全であることを証明するためのものです。要するに、リリース作業は私の時間を大量に消費するため、決して軽々しく行えるものではないのです。
私は次のリリースがすべての人にとって確実に安定していることを保証しようと努めています。
この投稿から1年が経過……。
2026-01 の投稿
開発は最終段階に入っています。Runtimeのプラグインとして機能するAuthorアプリはすでに完成しており、関連するサポートサービスの大半も完了しています。Runtimeはバージョン管理機能と環境管理機能の2つのコンポーネントで構成されていますが、コアとなるバージョン管理部分は現在完了しています。 最初にリリース予定の環境管理機能については、約75%の開発が完了していますが、まだテスト作業が残っています。
また、適切なリリースを行うために必要な中核的なビジネスマイルストーンも達成しました(このプロセスには約1年を要しました)。
共同開発者と定期的に更新を公開することについて真剣に話し合いましたが、実際にその段階に達する前にリリース可能になるかもしれません。いずれにせよ、更新を公開し始めた際に情報を受け取りたい場合は、以下の方法で登録できます:...
現在公開されているバージョン (1.2.x) に問題があり、旧バージョン (1.1.12) を使ったほうがいい場合がある
この問題の修正が上記により入らない
VSCode開発で「nvmよりfnmがおすすめ」とされている (Windowsの話かどうか微妙だけど)
まだMSのドキュメントにはnvm-windowsでNode.jsをインストールする手順が書いてあるし、Node.js関係者?の一人も勧めている
arm環境下じゃなければ v1.1.12 が安定してそう (2026-05 現在)
1. Use v1.1.12
volta
開発終了
mise
Windowsサポートが最近入って、Volta開発者も勧めている
shimsのパスを自動でセットするからscoopでのインストールが推奨らしい
自動でセットされなくなっとるやん
%LOCALAPPDATA%\mise\shims への追加が必要そう
discussionへのメンテナの返事はわりとすぐ来ることが多そうだが、全部ではない。Windows関係の問題については放置され気味かも
Voltaからの移動候補として、「テレメトリを無効にさえすればほぼ全機能使える」と挙がっている
知名度がな~~
scoop
私はシンプルで良いと思う
WindowsのPATHにしっかり設定される
nodejs22, nodejs24 などの切り替えが再インストールせず可能(これがMSIインストールより良い)
ただ、マイナーバージョン以下の切り替えはちょっと面倒?
自分の場合
正確にマイナー/パッチバージョンを指定する必要がなければ scoop
VSCodeを開発するなら .nvmrc が反映される必要があるので……
fnmか、mise settings add idiomatic_version_file_enable_tools node を実行したうえでmise