Windows の Node.js 環境について

導入してみる

WindowsでNode.jsを利用するときに、今まで普通に公式インストーラから実施していました。

nodejs.org

ですが、古いバージョンも維持しつつ新しいバージョンを触る機会が増えたので何か良い方法はないか、と思い検索したところ、「nodist」なるツールが紹介されていたので早速使ってみました。

nodist とは

↓で開発されている node と npm のバージョン管理ツールになります。

github.com

こちらを導入することで、nodeのインストール、切り替えがコマンドで実行できるようになります。

導入環境

  • エディション
  • バージョン
    • 2004

導入方法

  1. トップ画面右側にある「Releases」リンクをクリックします。

    f:id:akky97:20201121135040p:plain

  2. 最新バージョン(この時点ではV0.9.1)のインストーラファイル「NodeistSetup-v0.9.1.exe」をクリックし、ダウンロードします。

    f:id:akky97:20201121135312p:plain

  3. ダウンロードしたインストーラファイルを起動し、「Next」をクリックします。

    f:id:akky97:20201121135747p:plain

  4. 使用許諾内容が出てきますので、問題がなければ「I Agree」で同意します。

    f:id:akky97:20201121135931p:plain

  5. 適切なインストール先を入力し、「Install」をクリックします。

    f:id:akky97:20201121140225p:plain

  6. インストールが始まります。

    f:id:akky97:20201121140413p:plain

  7. インストールが完了したら、「Finish」でインストール完了します。

    f:id:akky97:20201121140503p:plain

Nodist導入の確認

PowerShellではそのままnodistコマンドは実行できないため、管理者でPowerShellを実行します。

f:id:akky97:20201121150623p:plain

次に nodist の手順にもあるコマンド Set-ExecutionPolicy -ExecutionPolicy RemoteSigned を実行します。すると実行ポリシーを変更するけど良いかを聞かれるかと思いますので、「y」を入力します。

PS C:\Windows\system32> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"):

続いて unblock-file -path "C:\Program Files (x86)\Nodist\bin\nodist.ps1"スクリプトを実行します。

PS C:\> unblock-file -path "C:\Program Files (x86)\Nodist\bin\nodist.ps1"

スクリプトの結果は特に画面には出てきませんでした。

これで Powershell 上で nodist が実行できるようになりますので、バージョン確認するコマンドを実行してみます。

PS C:\> nodist -v
0.9.1

試しにnodeのバージョン確認してみたらV11が入っていました。(nodistに同梱されているもの)

PS C:\> node -v
v11.13.0

Nodistを使ったnodeのインストール

インストール可能なnodeのバージョンを確認

nodist distを実行するとインストール可能なバージョンリストが表示されます。

PS C:\> nodist dist
  0.1.14
  0.1.15
  0.1.16
  0.1.17
  0.1.18
  0.1.19
  0.1.20
   :
   :(省略)
   :
  14.13.1
  14.14.0
  14.15.0
  14.15.1
  15.0.0
  15.0.1
  15.1.0
  15.2.0
  15.2.1

nodeのインストール

インストールは「+」オプションを使用します。

例として現在のLTSである 14.15.1 をインストールしてみます。

PS C:\> nodist + 14.15.1
 14.15.1 [===============] 55119/55119 KiB 100% 0.0s
14.15.1

上記のように指定したバージョンの導入が始まります。 ここで注意なのが、指定したバージョンがシステムに入っただけなので、まだこのバージョンが利用できる状態ではありません。

この状態でnodeのバージョンを確認すると以下の通り前のままです。

c:\>node -v
v11.13.0

今自分のPCで利用できる node バージョンを確認したい場合は nodist コマンドにオプションを何も付けないで実行すると一覧表示されます。

PS C:\> nodist
  (x64)
> 11.13.0  (global: v11.13.0)
  14.15.1

数値の前についている「>」が現在使用しているバージョンになります。これを変更するにはこのバージョンを指定すれば切り替わります。

PS C:\> nodist 14.15.1
14.15.1
14.15.1 (global)

ここでもう一度 nodist と node コマンドでバージョンを確認してみます。

PS C:\> nodist
  (x64)
  11.13.0
> 14.15.1  (global: 14.15.1)
PS C:\> node -v
v14.15.1

バージョンに出てきた global とは

nodist には、global、local、env の三つの指定でバージョンが変えられます。

global

全体に影響するバージョンです。上記の手順で node のバージョンを指定しましたが、これは global の設定をしていることになります。

local

特定のディレクトリ配下に対して指定することができます。(サブディレクトリ含む) 「local」オプションを付けて実行します。

例えば「test」ディレクトリ配下のバージョンを以下のように 11.13.0 に変更してみます。

PS C:\test> nodist
  (x64)
  11.13.0
> 14.15.1  (global: 14.15.1)
PS C:\test> nodist local 11.13.0
11.13.0 (C:\test\.node-version)
PS C:\test> node -v
v11.13.0

「test」ディレクトリから抜けてnodeのバージョンを確認すると 14.15.1 になっており、上記で指定した内容とは異なっています。

PS C:\test> cd ..
PS C:\> node -v
v14.15.1
PS C:\> nodist
  (x64)
  11.13.0
> 14.15.1  (global: 14.15.1)

さらに「test」ディレクトリ配下にサブディレクトリを作成して、その配下でバージョン確認をすると 11.13.0 となり、「test」ディレクトリ配下は 11.13.0 になっていることがわかります。

PS C:\test> cd 01
PS C:\test\01> nodist
  (x64)
> 11.13.0  (C:\test\.node-version: 11.13.0)
  14.15.1  (global: 14.15.1)
PS C:\test\01> node -v
v11.13.0

env

現在開いているコンソール上のみで変更します。コンソールを閉じたら変更内容は元に戻ります。「env」オプションで指定します。

PS C:\> node -v
v14.15.1
PS C:\> nodist
  (x64)
  11.13.0
> 14.15.1  (global: 14.15.1)
PS C:\> nodist env 11.13.0   ←envでバージョン変更
11.13.0
11.13.0
PS C:\> node -v
v11.13.0
PS C:\> nodist
  (x64)
> 11.13.0  (env: 11.13.0)
  14.15.1  (global: 14.15.1)

コンソールを開き直して確認するとバージョンが元に戻っています。

PS C:\> node -v
v14.15.1
PS C:\> nodist
  (x64)
  11.13.0
> 14.15.1  (global: 14.15.1)
PS C:\>

node のアンインストール

インストールの逆で「-」オプションを使用します。

PS C:\> nodist - 14.15.1