nodist の利用を諦めた! そしてアンインストールが難しい!
ここ数年 nodist という Windows 用の Node.js のバージョンを管理できるツールを使っていました。大変お世話になっておりました。が、本日をもって利用を諦めました。
nodist のアンインストールはいくつか注意点があるなぁと思い、この記事を書きました。通常のアンインストールだけでは削除されないファイルがあり、そいつが悪さをすることがありました。ので、その共有の記事になります。
結論
先にまとめを。以下を順に実施すれば万事OKでした。
- 設定 > アプリ> Nodist から「アンインストール」します。
/c/Program Files (x86)/Nodist
を削除します。/c/Users/(ユーザ名)/.npmrc
を削除します。/c/Users/(ユーザ名)/AppData/Roaming/npm_cache
を削除します。
これだけで事足りる人は以上でOK。以降に詳細を続けます。
nodist について(蛇足その1)
蛇足その1。
こちらの記事で紹介しています。こういう物です。
が、 2019年に久々の BugFix がなされたまま。もう役割は終えたのでしょうか。
諦めた理由(蛇足その2)
蛇足その2。
キッカケは、コマンド npx create-react-app ...
が使えなかったことです。
$ npx create-react-app hogehoge --template typescript ...中略... npm ERR! C:\Users\(ユーザ名)\AppData\Roaming\npm-cache\_logs\yyyy-MM-ddTHH:mm:ss.SSSZ-debug.log Package install failed, see above.
ログに出力された C:\Users\(ユーザ名)\AppData\Roaming\npm-cache\_logs\yyyy-MM-ddTHH:mm:ss.SSSZ-debug.log
の中は以下の通りです。 error cb.apply is not a function
というエラーが出力されます。
...前略... 16 error cb.apply is not a function ...後略...
この解消は意外と根深いことが分かってきました。そして nodist の利用をやめることが解消の早道と分かったところで利用を諦めました。
※ 万一 error cb.apply is not a function
でググって当該ページに来た方で、 nodist を使っていない方は下記の記事をご参照してください。。。
nodist のアンインストール方法
本題です。
通常のアンインストールだけでは削除されないファイルがあり、困ったことにそいつが悪さをします。それが何でどう削除するかを記載します。
- 設定 > アプリ > Nodist から「アンインストール」します。
/c/Program Files (x86)/Nodist
を削除します。/c/Users/(ユーザ名)/.npmrc
を削除します。/c/Users/(ユーザ名)/AppData/Roaming/npm_cache
を削除します。
.npmrc
が結構キッツイ感じがしました。はい。理由は以下に。
通常のアンインストール
スタートメニュー(Windows左下のやつ) > 設定(歯車アイコン) > アプリ
とたどります。「アプリと機能」から Nodist を探してアンインストールします。
ま、普通ですね。スクショを撮るまでもなかったでしょうに(一応撮った)。
Program Files の Nodist フォルダの削除
/c/Program Files (x86)/Nodist
が残っています。今後利用されても都合が悪いので削除しておきましょう。
.npmrc を削除
/c/Users/(ユーザ名)/.npmrc
を削除します。
このファイルが残っていると結構な害悪になります。ですので手動で必ず削除します。
.npmrc ファイルとは?
これは npm
コマンドの設定の一つで、ユーザー別の設定ファイルになります。 Nodist だろうがそうじゃなかろうが、 npm
コマンドを実行したときはこの設定を見に行きます。
Nodist では、アンインストール時にこのファイルを消さない場合があるようです。(条件は不明。。。そこまでは調べてないっす。)
.npmrc が害悪な理由
残っていた /c/Users/(ユーザ名)/.npmrc
の中身は以下のようになっています。
prefix=C:\Program Files (x86)\Nodist\bin
npm
コマンドを使った時の設定ファイルで、グローバルにインストールするときの場所の指定になります。 Nodist というキーワードが残っていますね。
例として、 npm
コマンドを打つと、以下のようなエラーが発生します。ディレクトリがないぞって言われます。
$ npm -v Error: EPERM: operation not permitted, mkdir 'C:\Program Files (x86)\Nodist' 6.14.11
前項では「Program Files の Nodist フォルダを消そう」と書きました。Nodist フォルダを消してないと、エラーが発生せずに Nodist のフォルダに npm のグローバルモジュールがインストールされ続けます。(Nodist をアンインストールしたのに!?)
これ、しばらく気づかなくないですか? 私は Nodist フォルダを消したから気づけましたが、これは厳しいですね。。。
npm_cache の削除
/c/Users/(ユーザ名)/AppData/Roaming/npm_cache
を削除します。
Nodist 時代に作られたキャッシュですので、今後の軋轢が生まれないよう消しておきましょう。
node のインストール
nodist 亡き後、何をインストールすべきか。色々あるようですが、素直に Node.js を Windows10 に直付け(普通にインストール)しました。
※ WSL2 もあるし、色々工夫されている方もおられますね。が、もうサードパーティの管理ツールはしばらくはいいかな、と。。。ガチガチにやる必要があれば docker 使ったり検討しようかな、と。
ということで、公式サイトからダウンロードしてインストールするだけです。
特に何もなければ LTS (Long Term Support) とある方を選びましょう。(「最新版」と書いてある方は安定はしていないよバージョンだと思って良いです。)私が実施したタイミングでは「14.15.5 LTS 推奨版」でした。
インストールが終わったら gitbash を起動してバージョン確認をしました。
$ node -v v14.15.5 $ npm -v 6.14.11 $ npx -v 6.14.11
これで完了。