2020 年ではもう使えない Nodist はアンインストールする (Windows)

5 min read読了の目安(約4700字

logo-light.svg

この記事について

この記事では、Node.js のバージョン管理マネージャーである Nodist をアンインストールして、ホストの Windows OS に Node.js を綺麗に再インストールまでの方法について記載しています。

環境

この記事の内容は、以下の環境で検証を行いました。

  • OS: Windows 10 Pro 10.0.19042 N/A ビルド 19042
  • Nodist: 0.9.1

この記事を作成した背景

職場の同僚が、新しく Node.js をインストールする機会がありました。
ホスト OS は Windows を使用しており、Docker ではなく、ホスト OS に Node.js をインストールしようとしていましたが、ネット上の情報は知見が古く、参考にしてはいけない 情報が多く存在していました。
そのため、過去の情報に従って Node.js をインストールした結果、yo (Yeoman) のインストールが正常に実行できず、作業を進められないという相談が私のところに来たのが始まりです。

Nodist の環境で Yeoman を npm install しても、NODE_PATH がエラーとなり怒られます。
インストール自体は成功したように見えますが、実際は失敗しています。Yeoman を実行しようとする際に地獄を見るはずです。
Nodist は npm root -g の場所などを書き換えます。これが Yeoman との相性を最悪にしている原因です。

GitHub のリポジトリを参照するに、Nodist の最新バージョンは v0.9.1 となっており、まだバージョン 1.0 にすら到達していません
さらには、最終リリース日は 2019 年 3 月 30 日 となっており、Git のログを参照してもここ 2 年間更新がなされていません

Node.js は日々更新され、2020 年 12 月 12 日現在、v14 が正式に LTS となった中、バージョン管理システム側が更新されていないというのは、正直言って Node.js の利用を阻害するものでしかありません。

ただ、実際に Nodist をアンインストールしようとした際、(これまたイケてないツールだなとしか思えませんでしたが、) きちんと Nodist の情報が削除されず、再度 Node.js をインストールしようとしても、Nodist の設定が保持されてしまう事案にひっかかりました。

そのため、今後似たような境遇に遭う人たちの道標となるために、この記事を残しています。

バージョン管理しながら Node.js を使うベストプラクティス

ベストプラクティスは、コンテナーで Node.js のバージョンを固定して利用することだと思います。
Node.js をコンテナー (Docker) で利用する方法については、以下を参照してください。

Docker を使用せずに Node.js を始めたい、という方は、n というバージョン管理システムの利用をおすすめします。
npm trends を見ても、一番利用されている Node.js のバージョン管理マネージャーです。

この n というバージョン管理マネージャーは、Linux または macOS でしか利用できず、Windows を使用している方は「!?」という思いがあるかもしれませんが、早まってはいけません。
2020 年の今、Windows 10 には WSL2 というものがあります。Windows 環境を使用するなら、WSL2 上で Node.js 開発をしてください。n については、こちらにまとめています。
(まさかとは思いますが、Windows XP/7/8.1 を使っていますとか言う論外な意見には耳を傾けません笑)

まあ 2 つの記事を端的にまとめて言いたいことは、ホスト OS に XXXenv とか入れて使用する時代はとうの昔に終わりを迎えていて、コンテナー使うのが当たり前、ホスト OS を汚して依存関係ガーと悩む時代ではないということです。
(現実問題、人間関係や職場のレベル的問題で、他の技術者が Docker 使えない、とかいう現場もあると思うので、バージョン管理マネージャーの記事も残している感じです)

Nodist のアンインストール

さて、無駄なツールを跡形もなく消してしまいましょう。

コントロールパネルからアンインストール

コントロールパネルを開き、Nodist をアンインストールします。

場合によっては、OS の再起動を求められます。その時は素直に再起動しましょう。

.npmrc ファイルの削除

Nodist のアンインストールは .npmrc ファイルを削除しません

これが厄介で、この .npmrc ファイルを Nodist が作成した場合、以下のようなファイル内容になっています。

.npmrc(例)
prefix=C:\Program Files\Nodist\bin

このファイルが残っているまま、Node.js のインストールを行うと、この .npmrc ファイルに記載の内容が流用され、グローバルインストールしたパッケージの保存先が Nodist のフォルダ構成で作成されます
(Nodist よ、アンインストールするときにこのファイルを削除するか、ファイルパス直すようにしとけよ・・・)

というわけで、新規に Node.js をインストールするときなどは邪魔でしかないので、こちらも削除します。

削除しないまま、Node.js をインストールした場合 npm root -g を実行してみてください。
値が Nodist の時のままになっているはずです。

Nodist インストール先フォルダの削除

あれ、アンインストールしたよね?と思う方、気をつけてください。
インストール先フォルダにファイルなどが残っています。中身を見ると、グローバルインストールしたものの残骸などは、消してくれないようですね。
(ちゃんと削除しろよ・・・)

というわけで、Nodist フォルダは Shift + Delete ボタンを押下して完全削除してしまいましょう。

bin フォルダなどが、Windows のプロセスによって使用されており、削除できない場合があります。
その時は、再起動して Windows プロセスがフォルダを使用しない状態にします。

npm-cache フォルダの削除

npm のキャッシュフォルダを削除します。
C:\Users\<ユーザー名>\AppData フォルダ以下に npm-cache という名前のフォルダが存在しています。
これを削除します。

AppData フォルダは、隠しフォルダになっています。
隠しフォルダ表示を行っていない方は、気を付けてください。

環境変数の削除

最後に環境変数の削除を行います。
Windows + R キーを押下して、ファイル名を指定して実行を開きます。
sysdm.cpl を入力して、システムのプロパティ画面を開きます。

詳細設定タブに移動して、環境変数ボタンを選択します。

環境変数画面が表示されます。
Nodist で必要だった環境変数が設定されていないか確認しましょう。
NODE_PATH などは削除します。また、Path の中に、Nodist のインストール先フォルダのパスが含まれている場合は削除を行います。

誤って、Path の環境変数を削除しないように気をつけましょう。

Node.js の再インストール

これで、Nodist を完全に削除できました。
Docker で Node.js を利用するなり、WSL2 上で Node.js をインストールするなり、(おすすめしないけど) Windows に Node.js をインストールするなりしてください。

参考情報