Voltaのコマンドを覚える

に公開

Nodeのバージョン切り替えツールとしてnvmではなくVoltaを使うことが増えてきた(各プロジェクトごとにバージョン管理できるのが便利)のですが、毎回コマンドなんだっけ?と忘れて調べてしまうので、アウトプットもかねてメモ書きしてみます。

インストール⇒セットアップは省きます。サイト飛んだら書いてあります。
https://volta.sh/

volta install

デフォルトのNodeバージョンを設定します。ローカルになければ持ってくるところ(fetch)から。
実際の使い方としては、node[@version]でバージョンを指定します。何もつけずにnodeだけだとlatestになります。

volta install node
success: installed and set node@22.14.0 (with npm@10.9.2) as default  

volta fetch

ローカルに入っていないバージョンのものを持ってきます。使い方はinstallと同じで、node[@version]です。メジャーバージョンだけの指定でも行けます。

volta fetch node@18
success: fetched node@18.20.8 (with npm@10.8.2)  

volta uninstall

ドキュメントには書いてあるけどnode削除しようとしてもerrorが出ます。
多分今対応してるのはnpmパッケージのみで、nodeやらyarnやらは手動で消さないといけないらしい。
https://qiita.com/YOS0602/items/04579e9933b90cce576a

volta uninstall node
error: Uninstalling node is not supported yet.

volta pin

結局これが便利。プロジェクトごとにバージョンを指定出来ます。いちいち変える必要がなくなる。
package.jsonに記述されます。

volta pin node@lts
success: pinned node@22.14.0 (with npm@10.9.2) in package.json

volta list

今使われているツールのバージョンを確認できます。pinをしたプロジェクトで使用すると、指定したバージョンが表示され、pinがない場合はinstallしたデフォルトのバージョンが表示されます。
また、後ろにtoolの名前を付けると、ローカルに入っている全バージョンを確認できます。

volta list
⚡️ Currently active tools:

    Node: v22.14.0 (current @ C:\Git\aaa\package.json)
    Yarn: v4.1.0 (default)
    Tool binaries available:
        jss (default)
        pnpm, pnpx (default)
        ts-node, ts-node-cwd, ts-node-esm, ts-node-script, ts-node-transpile-only, ts-script   
        (default)
        tsc, tsserver (current @ C:\Git\aaa\package.json)
volta list node
⚡️ Node runtimes in your toolchain:

    v10.24.1
    v12.22.12
    v14.21.3
    v18.14.1
    v18.20.8
    v20.10.0
    v20.11.0
    v22.13.1
    v22.14.0 (current @ C:\Git\aaa\package.json)

volta which

指定したtoolの実ファイルがどこにあるかわかります。消す時とかに使ってください。

volta which node
C:\Users\TK\AppData\Local\Volta\tools\image\node\22.14.0\node.exe

volta run

toolのバージョンを指定してコマンド実行できます。環境ごとの検証に使います。

volta run --node 18 npm run dev

completionsとsetup使わないので、特に紹介もいらないかなということで割愛。
もしわからなくなったらhelpでも確認できます。一旦以上です。

Discussion