hachiNote

勉強したことをメモします。

MacにVoltaをインストールしてみる

目的

Dockerの勉強としてDocker公式ドキュメントの言語別ガイドの中のNode.jsを読んでいたところ、手順的にDocker上のNode.jsではなく素で動くNode.js環境が必要であるように見えた。

Overview | Docker Documentation

今振り返って見てみると別に必要ってほどではなかったけれど、とはいえMac上に直接存在するNode.js環境はあってもいい。

  • MacにNode.js環境作るぞ。
  • Node.jsのバージョン管理はできるようにしたいので、homebrew直じゃなくて管理ツールがあった方がいいよね。
  • 以前は nvmn を使っていたが、今調べてみると volta というのがあるらしい。

ということで、MacにVoltaをインストールして、Node.jsのバージョン違いの環境を手軽に手に入れられるようにするのが目的です。

Voltaって何と、Voltaのインストール

基本的にこちらを参考にして、そのままやりました。ありがとうございます。

zenn.dev

Node.jsの正確なバージョンをpackage.jsonに保存しているので、一度バージョンを固定するコマンドを打っておくだけでプロジェクトごとのバージョン管理がしやすい、というのがなんとなく良い点のような気がしました。

公式はこちら。

volta.sh

インストールが速いってことを推してますね。

では早速インストールしていきます。

% curl https://get.volta.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12319  100 12319    0     0  10999      0  0:00:01  0:00:01 --:--:-- 10999
  Installing latest version of Volta (1.0.5)
    Checking for existing Volta installation
    Fetching archive for macOS, version 1.0.5
######################################################################## 100.0%#=#=-#  #                                                                   ######################################################################## 100.0%
    Creating directory layout
  Extracting Volta binaries and launchers
    Finished installation. Updating user profile settings.
Updating your Volta directory. This may take a few moments...
success: Setup complete. Open a new terminal to start using Volta!

.zshrcの中身を覗いて見て、イントールされていることを確認する。

% cat ~/.zshrc 
〜前略〜
export VOLTA_HOME="$HOME/.volta"
export PATH="$VOLTA_HOME/bin:$PATH"

一回Terminalを再起動して、voltaが実行できることを確認。そしてNode.jsがまだないことも確認してみる。

% volta --version
1.0.5
% node
Volta error: Node is not available.

To run any Node command, first set a default version using `volta install node`
Error details written to /Users/abcuser/.volta/log/volta-error-2022-03-16_17_58_33.674.log

この状態だと何もnodeがないので、デフォルトで使うNode.jsをVoltaでインストールしてみる。バージョン指定しないと最新のLTSリリースがインストールされるようです。

% volta install node
success: installed and set node@16.14.1 (with npm@8.5.0) as default
% node
Welcome to Node.js v16.14.1.
Type ".help" for more information.
> 
(To exit, press Ctrl+C again or Ctrl+D or type .exit)
> 

このときのinstallはめちゃめちゃ速く、4秒くらいしかかかっていなかった気がする。速いっていうだけある。

では次に、package.jsonがあるプロジェクトのディレクトリに移動して、そのプロジェクトのNode.jsのバージョンを固定してみます。固定するには volta pin というコマンドを使います。

% cd [package.jsonがあるプロジェクトのディレクトリ]
% volta pin node@12
success: pinned node@12.22.10 (with npm@6.14.16) in package.json

ここではバージョン12にしてみました。先ほど試しにinstallしたバージョンと違いますが、なかったら勝手にインストールもされるようです。この操作の後に package.json を覗いてみると、以下のようにnodeのバージョンが記入されていました。

  "volta": {
    "node": "12.22.10"
  },

基本的に使い方はこれだけでいいみたいです。簡単で便利ですね。