nodeのインストール:asdf-nodejsで複数のバージョンをインストールし、パスをチェックする方法
この記事では、JavaScriptの開発環境をざっと見て、nodeやnpm、さらにはyarnをインストールする最適な方法をまとめます。 特に、バージョンマネージャを使ってnodeをインストールすることで、将来使うかもしれないnodeの多くのバージョンに備えることができます。
1. JavaScript開発環境を理解する
JavaScript(略してJS)は、ウェブブラウザのHTMLに動的な機能を追加するための言語として作られました。 そのため、JSコードはウェブブラウザ内でしか実行できませんでした。
しかし2009年、ライアン・ダールがChromeブラウザーのV8エンジンをベースにしたnode.jsというJSランタイムをリリースした。 これにより、ウェブブラウザ以外でもJSを実行できるようになった。
nodeを踏み台にして、JSは瞬く間に主流言語となった。 特に、そのシンプルな構文、強力な非同期パフォーマンス、イベントループ構造、そしてコミュニティがサポートする膨大なライブラリによって、ウェブだけでなく、あらゆるプラットフォームの開発者に愛用されるようになりました。 このJS開発は、どのプラットフォームでもnodeをインストールすることから始まる。Javaの開発がJDKをインストールすることから始まるように。
nodeをインストールする最も簡単な方法は、公式ウェブサイトからインストーラー・ファイルをダウンロードして実行することだ。 しかし、この方法では、複数のバージョンのnodeが必要な場合、面倒なセットアップ・プロセスを経る必要がある。 この問題を解決するために、異なるバージョンのJSをインストールしたり切り替えたりするのに役立つ様々なバージョン・マネージャーがある。
今回使用するバージョン・マネージャーは asdf-nodejs である。
2. asdf-nodejs
asdf-nodejsはasdfがnode.jsを管理するためのプラグインである。 asdfにはさまざまな言語や開発ツールのプラグインをインストールすることができ、1つのプログラムでほぼすべての言語とツールをバージョン管理できる。 詳しくはasdfの投稿を参照してほしい。
asdf-nodejsは、asdfチームによって公式にメンテナンスされている4つのプラグインのうちの1つです。 そのため、安心して使うことができる。 以下のステップでは、上記の投稿を参考にASDFをインストールし、設定したと仮定している。
3. asdf-nodejsプラグインのインストール
以下はすべてMacOSでもWindowsでも同じです。それぞれのOSで使用しているターミナルを開き、以下のコマンドを入力してプラグインを追加してください。
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.gitエラーメッセージが表示されなければ、正常にインストールされています。 プラグインが動作していることを確認するには、以下のコマンドを入力してください。
asdf list all nodejs実行結果:

見ての通り、たくさんのバージョンのノードが得られる。 特定のバージョンが必要な場合は、インストール可能かどうかを確認してください。 そうでない場合は、デプロイしようとしているサービスの最新のLTS(Long-Term Support)バージョンか、最新のCurrentバージョンをインストールしてください。
ライブラリの互換性の問題が発生した場合は、簡単にバージョンを切り替えることができるので、軽くインストールしてください。

上記のように、asdf list all nodejs [specific_string] コマンドを使って、特定の文字列を含むバージョンだけをリストアップすることもできる。
4. asdf-nodejsで最新のノードをインストールする
インストールするnodejsのバージョンが決まったら、インストールしてみよう。 今回はLTSバージョンをインストールする。 list all`コマンドが示すように、最新のnode LTSバージョンにはそれぞれコードネームがある。 最新のLTSコードネームは、nodejs githubのCHANGELOG.mdファイル (opens in a new tab)または CODENAMES.mdファイル (opens in a new tab)にあります。

nodeをインストールするコマンドは
asdf install nodejs [version_name][version_name]には、任意のコードネームを入力して、正確なバージョンをフックすることができます。
また、lts または latest を指定すると、それぞれ最新の LTS バージョンまたは現在のバージョンをインストールすることができます。

インストール後、以下のコマンドを実行して、マシンにインストールされているバージョンを確認する。
asdf list nodejs実行結果です:

5. node jsのインストールパスの確認
asdf-nodejsによってインストールされるnodeの異なるバージョンはすべて~/.asdf/installs/nodejsの中に格納されている。
以下のコマンドで特定のバージョンのインストールパスを取得することもできる。
asdf where nodejs [version_name]実行結果です:

ls -alコマンドを使うと、コードネームでインストールした場合、正しいバージョンがインストールされ、それを指すリンクが作成されることがわかる。
6. インストールしたノードのバージョンに合わせる
nodeをダウンロードしてインストールしたので、インストールしたnodeのバージョンを使うようにマシンを設定する必要がある。 asdf-nodejsでは、以下の3つの領域で希望のnodeを設定できる。
- 現在のシェルで使用する
- 現在のディレクトリで使用する
- このコンピュータ内のあらゆる場所で使用する
3つのスコープがすべて設定されている場合は、シェル、ディレクトリ、グローバルの順に優先順位が高くなります。
6.1. 現在のシェルで起動する
現在のシェルでのみ有効にするには、コマンドは以下のようになります。
asdf shell nodejs [version_name]この場合、現在開いているターミナルを終了してシェルを閉じると、設定はリセットされる。
実行結果:

シェル再実行後にノードのバージョンを確認する:

上の例では、asdf shellコマンドによって、もともとマシンで使われていた19バージョンのnodeが18に変更されていることがわかる。
その後、ターミナルを再び開いて新しいシェルを開くと、設定が初期化されている。
6.2. カレントディレクトリでの使用
ここでは、カレント・ディレクトリで使用するnodeのバージョンを設定する方法を説明する。 これは、異なるプロジェクトで異なるバージョンを使用する場合に、設定したバージョンを自動的に読み込むので非常に便利です。 コマンドは以下の通りです。
asdf local nodejs [version_name]例で確認してみよう。
実行結果:

node-testというディレクトリを作成し、コマンドを使って18バージョンのnodeを有効にしている。
親ディレクトリで使用されているnodeは19バージョンである。
しかし、node-test ディレクトリに入ると、自動的に設定した 18 バージョンに変更されることがわかります。
6.3. マシン全体で有効にする
最後に、マシン全体で有効にする。コマンドは以下の通りである。
asdf global nodejs [version_name]もう一度、例で確認してみよう。
実行結果:

元々バージョン19に設定されており、asdf list nodejsコマンドを入力すると、先頭に*が付いていた。
その後、globalコマンドでLTSバージョンに変更してみると、そのバージョンに変わっていることがわかる。
同じコマンドで19に戻すと、正常に変更される。
7. 設定したnode.js実行ファイルのパスを確認する
参考までに、asdfで設定されたnode実行ファイルへのパスは常に ~/.asdf/shims/node である。
ASDFは一般的にシムと呼ばれるテクニックを使って、設定されたバージョンのNODEを実行する。
パスを以下に示す。
which node実行結果:

8. npmのインストール
8.1. npmバージョンの確認
npmはnodeで使用される最も一般的なパッケージマネージャで、nodeをインストールすると一緒にインストールされます。
nodeのバージョンによってインストールされるnpmのバージョンが異なり、インストールされるパッケージの管理も異なります。
nodeのバージョンを変更してからnpm --versionコマンドでバージョンを確認すると、nodeのバージョンによってnpmのバージョンが異なることがわかります。
実行結果:

8.2. npmのインストールパスの確認
インストールされているnpm実行ファイルのパスは ~/.asdf/shims/npm で、実際にインストールされているパスは ~/.asdf/installs/nodejs/[version_name]/lib/node_modules/npm/bin/npm-cli.js である。

8.3.. npxのインストールパスの確認
インストールされた npm 実行ファイルのパスは ~/.asdf/shims/npx であり、実際にインストールされたパスは ~/.asdf/installs/nodejs/[version_name]/lib/node_modules/npm/bin/npx-cli.js である。
9. yarnのインストール
npmと並んで、最も人気のあるJSパッケージマネージャの1つであるyarnも、asdfを使って簡単にインストールできる。 しかし、yarnは常にnodeを最初にインストールするので、asdfでインストールするとnodeを再インストールすることになる。 そのため、nodeのバージョンごとにnpmを使ってグローバル・パッケージとしてインストールすることを推奨する。
nodeをグローバルにインストールした状態で、以下のコマンドを入力する。
npm install --global yarn実行結果です:

インストールが正常に完了したら、以下のコマンドでパッケージリストを確認する。
npm list --global実行結果:

9.1. yarnバージョンの確認
最後に、yarnのバージョンチェックコマンドの結果を確認します。
yarn --version実行結果:

10. 結論
asdf-nodejsは、node、npm、yarnをインストールする最良の方法の1つである。 特に、特定のフォルダにあるnodeのバージョンを指定する機能と、マシン全体で使っているバージョンを簡単に変更できる機能は、今後たくさん使うことになると思う。 この投稿が、JS開発を素早く簡単に始めるのに役立つことを願っている。
