Node.js
VSCode
VisualStudioCode

Node Version Switcher (nvs)でらくらくバージョン切り替え

はしめに

Visual Studio Code v1.21から、正式にNode Version Switcher (nvs)がサポートされるようになりました。個人的には、バージョン切り替えの需要があまりなかったのですが、最近旧バージョンを併用しなければならなくなったのでこの機会に触れてみました。

Node Version Switcher

Node Version Switcherとは

Node Version Switcher (以下、nvs)とは、クロスプラットフォームで動作する、Node.jsのバージョン切り替えを行えるユーティリティです。nvs以外に必要な依存パッケージはなく、単独で動作します。Node.jsすら必要がないため、手軽に環境を構築して使い始めるられます。

セットアップ

ここでは、Windows環境をターゲットにnvsのセットアップの方法を説明します(もちろん、Macなどにもインストールできますが、手元に環境がないので割愛します)。説明といっても、手順は簡単で、Github上にホストされているnvsのリリースページから最新のインストーラー(nvs-X.X.X.msi)をダウンロードして、インストールするだけです。

キャプチャ.PNG

なお、nvsにはコマンドプロンプトから呼び出せない機能があるため、PowerShell 3.0以上が必要になります。PowerShell 3.0は、Windows 8以降であれば標準搭載されていますので、特に配慮することはありません。Windows 7の場合は、PowerShellをアップデートするために更新プログラムの適用が必要になります。

nvsのコマンド

コマンド 概要
nvs help <command> ヘルプ表示
nvs install プロファイルの初期化
nvs uninstall nvsをプロファイルと環境からアンインストール
nvs --version nvsのバージョンを表示
nvs add <version> 指定したバージョンのNode.jsをインストール
nvs rm <version> 指定したバージョンのNode.jsをアンインストール
nvs migrate <fromver> [tover] グローバルモジュールの移行
nvs upgrade [fromver] メジャーバージョンにマイナーパッチの適用
nvs use [version] 現在のシェルで使用するバージョンの切り替え
nvs auto [on/off] 自動切換えのオン/of
nvs run <ver> <js> [args...] スクリプトの実行
nvs exec <ver> <exe> [args...] PATHを使用してスクリプトを実行
nvs which [version] Node.jsのパスを表示
nvs ls [filter] ローカルにあるNode.jsのリストを表示
nvs ls-remote [filter] ダウンロード可能なNode.jsのリストを表示
nvs link [version] 既定で使用するNode.jsのバージョンを指定
nvs unlink [version] 既定で使用するNode.jsのバージョンを解除
nvs alias [name] [value] Node.jsのバージョンに名前をつける
nvs remote [name] [value] Node.jsの提供先のURIを指定

コマンド実行例

Node.jsのダウンロード

ダウンロードはaddオプションにバージョン指定をしておこないます。最新版やLTSバージョンでは、latest(最新版)やCarbon(8系統)などのエイリアスを指定してダウンロードすることもできます。

nvs add latest  # 最新版のダウンロード 
nvs add 7.7.4   # 7.7.4のダウンロード

スクリプトの実行

runオプションにバージョンとファイル名を指定します。

nvs run 7.7.4 main.js # Node.js 7.7.4でmain.jsを実行

毎回バージョンを指定するのが面倒な場合は、エイリアスで指定もできます。

nvs alias 7.7.4 node7 # Node.js 7.7.4をnode7というエイリアスに指定
nvs run node7 main.js # Node.js 7.7.4でmain.jsを実行

パッケージのインストール

プロンプト上でnpmコマンドをたたくだけです。

npm install -g gulp # Gulpをグローバルインストール

なお、上記のコマンドを実行すると既定のバージョンのNode.jsにのみグローバルインストールされます。既定のバージョンを切り替える場合は、linkオプションを使用します。

nvs link latest # 既定を最新版に変更
npm install -g gulp # 最新版のNode.jsにGulpをグローバルインストール

繰り返しになりますが、上記のコマンドを実行すると既定のバージョンのNode.jsにのみグローバルインストールされます。そのほかのバージョンのNode.jsにもグローバルインストールする場合は、migrateオプションを用います。

nvs link latest # 既定を最新版に変更
npm install -g gulp      # 最新版のNode.jsにGulpをグローバルインストール
nvs migrate latest 7.7.4 # 最新版のNode.jsにグローバルインストールされているパッケージを7.7.4にもインストール

VS Codeから使用

VS Codeからは、.vscode/launch.jsonに下記の設定を埋め込むだけで、F5キーで実行できるようになります。実行時に使用するNode.jsのバージョンはruntimeArgsで指定しています。

"configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${file}",
      "args": [ ],
      "runtimeArgs": [ "7.7.4" ],
      "windows": { "runtimeExecutable": "nvs.cmd" },
      "osx": { "runtimeExecutable": "nvs" },
      "linux": { "runtimeExecutable": "nvs" }
    }
]

最後に

nvsを使用すると簡単なコマンドでNode.jsのバージョンを切り替えることができます。複数バージョンのNode.jsを使って開発しているという方は、手軽に始められるのでぜひ使ってみてください。