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の場合は.bashrc
にeval "$(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で問題なく動いたので良く分かりませんでした...