nodist を Windows に導入する手順と導入中のエラー

node.js のロゴ。

Windows で node.js を使って開発をしたいとき、nodist を使うと便利なようです。 nodist は node のバージョン管理機能の他、npm などのパッケージ管理機能も同時に入れてくれるようなので、nodist を導入することにしました。

ここでは nodist を windows に導入する手順と、その途中で生じたエラーについてまとめておきます。

2016.04.11 現在、動作している報告と動作していないという報告をチラホラ見かけます。 上手く動作しない場合はインストーラを使ったインストールを推奨します。

あるいはもう諦めて node.js を直接インストールすることを推奨します。

nodist のダウンロード

nodist は GitHub からダウンロードしてくることができます。必要なら git からクローンすれば良いですし、 zip パッケージをそのままダウンロードしてくるのでも良いです。

nodist - GitHub

インストーラーも用意されています。インストーラーを利用するのが最も楽だと思います。 環境パス・環境変数も設定してくれるのでトラブルも少なく済みます。

nodist/Release - GitHub

nodist のインストール

インストーラを使わない場合についてまとめていますが、インストーラを使うことを推奨します。 インストーラを使う場合は次の項目を参照してください。

バージョンによって必要な環境パスなどが違うようですから、ここで紹介する設定手順では不十分である可能性が大いにあります。 インストーラは必要な環境パス・変数を自動で設定してくれます。

任意の場所(パス)にダウンロードした nodist を展開し、nodist のために次のようなシステムの環境パス・環境変数を設定します。 "名前=値"の形式で記述しています。

Path(PATH)はあらかじめ存在するでしょうから追加編集を、 NODIST_PREFIX は存在しなければ新規に追加します。

Path=…\\nodist\\bin(nodist.cmd があるパス)
NODIST_PREFIX=…\\nodist(package.json があるパス)

また 64bit 環境の場合には次の NODIST_X64 も追加します。

NODIST_X64=1

システムの環境変数を設定したら再起動しましょう。 (再起動しなくても良いとかいう話も聞きます、パスが通ってないなどの問題があったときに再起動でも良いと思います)

nodist の更新と node のインストール

コマンドプロンプトを起動して nodist の利用を開始します。

まず nodist を使い始めるときは nodist update コマンドを実行します。 特にバージョンを指定しないとき、関連するファイルの最新のバージョンがインストールされます。

Couldn't decide which node version to use ~

nodist update で次のようなエラーが起こるとき、いくつかの問題が考えられます。

1 つは文面通り、node のバージョン選択においてトラブルが起こるとき、もう 1 つは管理者権限で実行されていないときです。

nodist を配置した場所(パス) によっては、その操作に管理者権限が必要になる場合があります。コマンドプロンプトを管理者権限で実行するとこのエラーが発生しない場合があります。

Installing latest stable version... Sorry, there's a problem with nodist. Couldn't decide which node version to use. Please set a version.

定かじゃないが原因の可能性

nodistbin の中には nodist を実行するための物と思われる node.exe が含まれているので、 これにパスが通っていれば任意の場所に node.exe をインストールすることができるようになりそうなものですが、 実際にはエラーが出てます。

Windows に別途 node.js をインストールして、その node.js に環境パス・環境変数が通っていれば が起動するのですが、 nodist で node をインストールしたいわけで、これでは本末転倒ですね。

node.exe は内部コマンド~として認識されていません。

nodist update で次のようなエラーが起こるとき、設定ファイルを編集する必要があります。

Installing latest stable version... '"C:workspacetoolsnodistbin..node.exe"' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

nodist ディレクトリの bin\nodist.cmd ファイルを開いて、次のようなコードを修正します。

:main
"%~dp0..\node.exe" "%~dp0..\cli" %*

このコードでは node.exe の配置が の 1 つ上の階層にあるとされていますが、 私がダウンロードしてきた最新の nodist では、node.exe は同じ階層にあります。

したがって、次のようにファイルパスを修正します。実行環境に応じて適宜適切なファイルパスを設定してください。

:main
"%~dp0node.exe" "%~dp0..\cli" %*

問題の継続

nodist -vnodist-update などのコマンドが実行できず、下記のようなエラーコードが発生し続けるときは、 一度設定したシステムの環境変数を削除し、インストーラによるインストールを実行することを推奨します。

Sorry, there's a problem with nodist. Couldn't decide which node version to use. Please set a version.

インストーラを使ってなお問題が発生するときは、公式に動作条件などを明記したうえで問い合わせるのが良いと思います。

インストーラを使ったインストールの注意点

インストーラを使ってインストールするときに注意するべき点はほとんどありませんが、64 bit 環境のときは、x64 を選択するようにしましょう。 標準では x86 になっています。

nodist のインストール時にx64を選択する画面。

インストールディレクトリは標準では Program Files(x86)` になっていますが、これについては x86 のディレクトリでも問題ありません。 気持ちが悪ければ任意の場所に変更しても動作します。