Nodeのバージョン管理にfnmを導入した

2023/11/04

この記事はQiitaから移行してきました。

経緯

Nodeのバージョン管理にfnmを導入してみました。
ぶっちゃけ何でも良いと思っていましたが、
リポジトリによっては .node_versions とか.nvmrcとか色々あって面倒なのでどちらでも自動切換え&自動インストールしてくれるfnmにしてみようと思ったわけです。
あとRust製で速いらしいし。

環境

  • WSL2 (Ubuntu20.04)

手順

公式のREADMEに全部書いているので、その通りにやればいけます。

curl -fsSL https://fnm.vercel.app/install | bashするか
or
何かしらのパッケージ管理ツールでinstallしてshellにちょっと追記する。
例えばbashの場合は.bashrceval "$(fnm env --use-on-cd)"を書くだけです。
どこかの記事で「.bashrcに関数を追加する」みたいな手順も見かけましたが、自分の場合は特に追加せずとも自動インストールが動きました。

WSL等使わないWindowsの場合はちょっと手順が増えますが、それもREADMEに書いているのでそちらを参照ください。

感想

自動切換えもありがたいし、何より指定のバージョンがなければ自動でインストールしてくれるのが非常に便利です。
Rust製で速いという噂でしたが、多分nvm使ってた時より切り替えやらの動作はちょっと早い気がします。知らんけど。

今のところ特に不満は無いので、当分は使っていこうと思います。

error: error sending request ~~: operation timed outで怒られる場合

curlでinstallしてfnm --versionでバージョンが確認できたので、よっしゃ終わり!っと思ったらfnm list-remoteで上記のようなエラーが表示されました。
fnm install {version}も出来ず、なにやら通信が伴うことが全部time outしてしまいます。

検索してもそれらしきGoogle先生が見つかりませんでしたが、こちらのissueにそれっぽいことが書いてありました。
この方は「fnmのリポジトリをcloneしてcargoでビルドすれば動いたので、install script(多分curlの事)のバグなんじゃね?」って言ってますね。

curlがダメなのか?と思い一度消してcargo install fnmすればいけました!
手元の他のPC(同じWSL2環境)ではcurlで問題なく動いたので良く分かりませんでした...

shin-taroのプロフィール画像

shin-taro

フロントエンドをやっています。 このブログは気ままに書いているので更新頻度は疎らです。