LoginSignup
2
0

More than 1 year has passed since last update.

nvm を使って Node.js の LTS バージョンをMacにインストールする

Posted at

プログラミング学習者です。これまでRubyとRuby on Railsを学習していて、これからJavaScriptの学習を始めるために行いました。
次の機会に、またいちからやり直しになりそうだったので、作業記録を残します。

環境

  • macOS Monterey12.6、 プロセッサはintel。
  • Homebrewはインストール済み。

インストールの流れ

  1. Homebrewを使って、Node.jsのバージョン管理ツールをインストール。ここではnvmを使用。
  2. nvmを使って、Node.jsをインストール
  3. 確認
  4. .nvmrc ファイルに関すること(必須ではない。)

語句

  • HomebrewはMacのパッケージマネージャ
  • nvmは、Node.jsのバージョン管理ツール。バージョン管理ツールは他にもある。
  • Node.jsは

Node.jsは、サーバーサイドでJavaScriptを使うためのプラットフォーム
(【入門】Node.jsとは?利用シーンやメリットなどをわかりやすく解説 - カゴヤのサーバー研究室より)

実際の作業手順

1) Homebrewでnvmをインストール

$ brew install nvm

上のコマンドでインストールされると、ターミナルに以下が出力されます。

```shell-session
Please note that upstream has asked us to make explicit managing
nvm via Homebrew is unsupported by them and you should check any
problems against the standard nvm install method prior to reporting.

You should create NVM's working directory if it doesn't exist:

  mkdir ~/.nvm

Add the following to ~/.zshrc or your desired shell
configuration file:

  export NVM_DIR="$HOME/.nvm"
  [ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

You can set $NVM_DIR to any location, but leaving it unchanged from
/usr/local/opt/nvm will destroy any nvm-installed Node installations
upon upgrade/reinstall.

Type `nvm help` for further information.
==> Summary
🍺  /usr/local/Cellar/nvm/0.39.1_1: 9 files, 184.2KB
==> Running `brew cleanup nvm`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

表示された内容に沿って必要な設定を行います。

nvm用のディレクリトリ作成。

$ mkdir ~/.nvm

vim ~/.zshrcで、zshrcファイルへ以下を追記。

 # nvmの設定
export NVM_DIR="$HOME/.nvm"
  [ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

確認するには、ターミナルを再起動してnvm --version
バージョンが表示されればO.K。

2) nvmを使って、Node.jsをインストール

Node.jsのLTSバージョンをインストール。

❯ nvm install --lts
Installing latest LTS version.
Downloading and installing node v16.17.0...
Downloading https://nodejs.org/dist/v16.17.0/node-v16.17.0-darwin-x64.tar.xz...
######################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v16.17.0 (npm v8.15.0)
Creating default alias: default -> lts/* (-> v16.17.0)

3) 確認

こうなっていれば、大丈夫そう。(バージョンの数字以外で)

❯ node -v
v16.17.0

~
❯ nvm ls
->     v16.17.0
         system
default -> lts/* (-> v16.17.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.17.0) (default)
stable -> 16.17 (-> v16.17.0) (default)
lts/* -> lts/gallium (-> v16.17.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.20.0 (-> N/A)
lts/gallium -> v16.17.0

4) .nvmrc ファイルに関すること(必須ではない。)

.nvmrc ファイルがある場合は、自動で読み込まれるように設定。

.nvmrc ファイルとは?

プロジェクトのルート ディレクトリ (または任意の親ディレクトリ) に、ノードのバージョン番号を含むファイルを作成することで、コマンド ラインでバージョンが指定されていない場合はnvm use, nvm install, nvm exec, nvm runnvm whichを行う際、.nvmrc ファイルで指定されたバージョンが使用される。

.nvmrc ファイルを自動的に読み込むための設定、zsh の場合

.zshrcファイルを編集。

vim ~/.zshrc

以下を追記しておく。

# .nvmrc ファイルを自動的に読み込むための設定
autoload -U add-zsh-hook
load-nvmrc() {
  local node_version="$(nvm version)"
  local nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$node_version" ]; then
      nvm use
    fi
  elif [ "$node_version" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

参考リンク

ありがとうございます!!🙏

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0