◆ Notion の名前が Volta に変わってた
◆ Node.js 以外のツールも管理できる
  ◆ npm の cli が対象らしい
◆ プロジェクトごとにバージョン設定できる
  ◆ 実行した場所で実行されるバージョンが変わる
  ◆ Python の仮想環境みたい感じ
  ◆ バージョン情報は package.json に追加される

Notion の名前が変わってた

久々にログインした VM で Node.js を使うと古いバージョンでした
最新版も入れようと nodebrew コマンドを打つと……みつかりませんでした
この環境 n とか nvm なんだっけ?と思って打ってみるも みつかりません

node コマンドがどこみてるのかを調べてみたら notion
そういえば前に新し目なバージョン管理ツール使ってみようと fnm とか notion を使ってみてそのままでした

さすがに古いバージョンだしとりあえずアップデートしようと思ったらセルフアップデート機能はついてないようです
公式ページにいって最新版を落とそうかなと思ったら公式サイトが見つかりません
Github をみても関連ツールとかウェブページのリポジトリはあるものの肝心の notion 自体はみつかりません
リポジトリから公式サイトに行けたので開いてみたら Volta というプロジェクトのページが表示されます
ただこのサイトになんか見覚えがあります

調べてみると 0.5.0 で名前を Notion から Volta に変更したようです
https://github.com/volta-cli/volta/blob/master/RELEASES.md

Volta

名前変えてまで まだ更新を続けてるプロジェクトなので今後も期待できそうですし とりあえず この VM では Volta を使っていくことにしました
割と VM ごとに環境がバラバラで揃ってません

Volta は Node.js だけじゃなくツールチェインを管理するものらしいです
Node.js は管理対象のツールの 1 つで他には yarn などがあります
npm の cli ツールが対象みたいなので webpack とかもできそうです
ドキュメントだと TypeScript をインストールしていました

それ以外を見ると使えるコマンド数も少なくシンプルなのですが 他の多くの Node.js のバージョン管理ツールではあまりみない便利な機能がありました
グローバルだけじゃなくてプロジェクトごとにバージョンを指定できます
実行したときのフォルダによって自動でバージョンが変わるのはすごく便利ですね
nodebrew などでは手動で変える必要があるので自動でやってくれると助かります
とはいえ最近は昔ほどバージョンを上げて使えなくなるライブラリもないので 気にせず最新版で動かしてることが多いですけど……

指定したバージョン情報は package.json 中に "volta" キーで追加されます
package.json が必要にはなりますが 独自の保存じゃなくて package.json で管理できるのは良いと思います
目で見てバージョンが確認できますし 他の環境でも再設定なしで使えます

1 つの用途専用で作った環境ではなくあれもやるこれもやる用途の環境では入れておくと便利だと思います

あと Volta は Rust 製です
ほとんどがダウンロードや展開やコピーなので言語の違いによる実行速度よりもストレージの読み書き速度依存な気もしますけど 体感はけっこう高速な気がしました
他のはだいたいシェルスクリプトです (nvm/nave/n/nodeenv/...)
めずらしいのは nodebrew が Perl で fnm が OCaml(Reason) です

Windows も対応してるので今後は nodist の代わりにこれにするのもありかな