Windows、Linux、Macの各環境にnvmを使用してNodeの実行環境を構築する

フロントエンドの開発やAWS CDKを用いた開発など、最近はNodeの実行環境を求められるケースが増えてきました。このエントリでは、Windows、Linux、Macという3つの異なる環境で、nodeとnpmコマンドが使えるようになるところまでの手順を解説します。
2019.09.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

フロントエンドの開発やAWS CDKを用いた開発など、最近はNodeの実行環境を求められるケースが増えてきました。このエントリでは、Windows、Linux、Macという3つの異なる環境で、nodenpmコマンド(もちろんnpx*1)が使えるようになるところまでの手順を解説します。

目次

nvmって必要なの?

そもそもnvmが何かというと、Nodeの複数のバージョンを管理し、切り替えたりするためのソフトウェアです。ある場面では最新のNodeを使いたい、でも別の場面では少し前のバージョンを使いたい。といったシチュエーションなどに対応できます。あまり複数バージョンの使い分けが必要ない場合でも、Nodeのアップデートなどを簡単に行えるためお勧めです。

nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

検証環境

次の環境で検証していますが、基本的には類似のOSなら大丈夫(だと思いたい)です。特にWindowsはクライアントOSとサーバーOSで挙動が変わる可能性がありますが、うまくいかない場合などはご一報ください。

  • Windows
    • Windows Server 2016
  • Linux
    • Amazon Linux 2
  • Mac
    • macOS Mojave

Windows

大まかな手順としてはPowerShellを使ってパッケージ管理ソフトであるChocolateyをインストールし、続いてnvm、Node、という順にインストールしていきます。

まずはPowerShellを起動し、次のコマンドを実行します。しばらく待つとChocolateyのインストールが完了します。

iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex

続いて次のコマンドを実行します。途中でスクリプトを実行してもいいか聞かれるのでyと入力します。応答が面倒な場合はchocoコマンドに-yのオプションをつけることもできます。インストールが完了したら一度PowerShellを再起動する必要があります。

choco install nvm

PowerShellを一度閉じて再起動できたらnvmと入力してみます。スクリーンキャプチャのようにコマンドが実行できればここまでは大丈夫です。

nvm

使用可能なNodeのバージョンはlistで、実際のインストールはinstallです。執筆時点ではLTS(Long Term Support)の最新バージョンは10.16.3のため、今回はこれをインストールします。

nvm list available

nvm install 10.16.3

インストールできたらそのバージョンをuseで使用できます。nodenpmのバージョンが確認できるため、インストール完了の確認ができました。

nvm use 10.16.3

node -v

npm -v

Linux

Linuxにnvmをインストールする場合は、GitHubのREADMEにあるようにインストールスクリプトを使用します。インストールすると自動的に.bashrcにディレクトリの設定などが書き込まれるため、これをロードすればすぐに使用可能です。

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13226  100 13226    0     0  13226      0  0:00:01 --:--:--  0:00:01 44986
=> Downloading nvm as script to '/home/ec2-user/.nvm'

=> Appending nvm source string to /home/ec2-user/.bashrc
=> Appending bash_completion source string to /home/ec2-user/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

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

$ . .bashrc

$ nvm --version
0.34.0

インストール可能なバージョン一覧はls-remoteを使用しますが、非常にリストが長いため絞り込みます。LTSの最新バージョンはv10.16.3であることが確認できるため、これをインストールします。

$ nvm ls-remote --lts | grep Latest
         v4.9.1   (Latest LTS: Argon)
        v6.17.1   (Latest LTS: Boron)
        v8.16.1   (Latest LTS: Carbon)
       v10.16.3   (Latest LTS: Dubnium)

$ nvm install v10.16.3
Downloading and installing node v10.16.3...
Downloading https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v10.16.3 (npm v6.9.0)
Creating default alias: default -> v10.16.3

Windowsと同じようにuseしてもよいですが、しなくてもすでに使える状態でした。次のようなバージョンを確認できれば、インストール完了です。

$ node -v
v10.16.3

$ npm -v
6.9.0

Mac

Macにnvmをインストールするには、Linuxと同じようにインストールスクリプトを使用する方法と、パッケージ管理ツールを使う方法があります。ここではパッケージ管理ツールとしてHomebrewを使ってみます。

Homebrewがインストールされていない場合は、次のワンライナーを実行すればインストールできます。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrewがインストールできたら、続いてnvmをインストールします。インストールすると次のようなメッセージが出力されるはずです。これを設定しないとうまく動作しません。~/.bash_profileに指示された3行を追記します。

$ brew install nvm

...
Add the following to ~/.bash_profile 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" ] && . "/usr/local/opt/nvm/etc/bash_completion"  # This loads nvm bash_completion]

追記できたらそれをロードすれば、あとはLinuxと同じ手順でインストールできます。

$ . ~/.bash_profile

$ nvm --version
0.34.0

$ nvm ls-remote --lts | grep Latest
         v4.9.1   (Latest LTS: Argon)
        v6.17.1   (Latest LTS: Boron)
        v8.16.1   (Latest LTS: Carbon)
       v10.16.3   (Latest LTS: Dubnium)

$ nvm install v10.16.3

$ node -v
v10.16.3

$ npm -v
6.9.0

まとめ

Nodeのインストーラーを使って直接インストールすることもできるのですが、nvmなどのツールを使うことでより効率的に管理ができます。コマンド操作に馴染みのない方は難しい手順に見えるかもしれませんが、慣れれば快適ですのでこの機会に少しずつ覚えてみてください。

それでは、よいNodeライフを!

脚注