Posted at

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

More than 1 year has passed since last update.


はしめに

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)をダウンロードして、インストールするだけです。

なお、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を使って開発しているという方は、手軽に始められるのでぜひ使ってみてください。