⚡
Volta覚え書き
Voltaに関して
Volta - The Hassle-Free JavaScript Tool Manager
Rust製で主な機能としては以下になります。
- スピード ⚡
- プロジェクト単位のシームレスなバージョン切り替え
- Windows とすべての Unix シェルを含むクロスプラットフォームサポート
- 複数のパッケージマネージャをサポート
- 安定したツールのインストール- (Node のアップグレードのたびに再インストールする必要がない)
- サイト固有のカスタマイズのための拡張フック
動作環境
$ sw_vers
ProductName: macOS
ProductVersion: 13.3.1
ProductVersionExtra: (a)
BuildVersion: 22E772610a
インストール
早速インストールしていきます。
curl https://get.volta.sh | bash
自分の環境では以下にインストールされていました。
$ which volta
/Users/xxxx/.volta/bin/volta
$ volta --version
1.1.1
通常のバージョン管理ツールの様にデフォルトを切り替える
まずは追加したいversionのnodeをインストールしてみます。
$ volta install node@14
$ volta list all
⚡️ User toolchain:
Node runtimes:
v14.21.3 (default)
Package managers:
Packages:
v14.21.3
がインストールされた事がわかります。次に最新のversionのnodeをインストールしてみます。
$ volta install node
$ volta list all
⚡️ User toolchain:
Node runtimes:
v14.21.3
v18.16.0 (default)
Package managers:
Packages:
v18.16.0
がインストールされ (default)
もv18に設定されています。
これを再度 v14.21.3
に戻すには、
$ volta install node@v14.21.3
の様に実行するとデフォルトがv14に設定されます。
プロジェクト毎にVersion固定
volta pin
コマンドでプロジェクトの package.json
にバージョンを記載に固定させます。
その為 package.json がないと以下の様にエラーが出ます。
$ volta pin node@14.21.3
error: Not in a node package.
なので適当なディレクトリを作成し、package.jsonを作成します。
$ mkdir sample
$ cd sample
$ yarn init
改めてnodeのversionを固定してみたいと思います。
$ volta pin node@14.21.3
success: pinned node@14.21.3 (with npm@6.14.18) in package.json
するとpackage.jsonに volta
項目が追加されていました。
$ cat package.json
{
"name": "sample1",
"packageManager": "yarn@4.0.0-rc.39",
"volta": {
"node": "14.21.3"
}
}
※ちなみに、先にnpmを固定しようとすると先のnodeを固定する様なエラーが表示されます
$ volta pin npm@9.5.0
error: Cannot pin npm because the Node version is not pinned in this project.
Use `volta pin node` to pin Node first, then pin a npm version.
Discussion