MENU

Node.jsのバージョン一覧をCLIから取得する方法

fishではnvmのサポートが微妙ということで、Node.jsのバージョン管理にはvoltaを使うことにした。が、voltaは配布されているNodeのバージョン一覧を取得するコマンドがない。まぁ volta install node@18とかでざっくりインストールすればいいからだと思うが。まぁそうは言っても、バージョン一覧をCLIから取得したいなぁと思って、ChatGPT-4に聞いた。

目次

環境

  • M2 Pro MacBook Pro 14インチ
  • macOS 13.4.1
  • fish 3.6.1

はじめに

Node.jsはJavaScriptをサーバーサイドで実行するための環境で、そのバージョン管理は重要な作業の一部です。今日は、Node.jsの公式配布元から利用可能なすべてのNode.jsのバージョンを一覧表示する方法を紹介します。これにより、特定のバージョンが存在するか確認したり、どのバージョンをインストールすべきか決定する際の参考にすることができます。


Node.jsのバージョン一覧を取得するコマンド

以下のコマンドを使用します:

curl -s https://nodejs.org/dist/ | grep -Eo 'v[0-9]+\.[0-9]+\.[0-9]+/' | sed 's/\///g' | sort -V

以下のような出力が得られます:

v0.1.14
v0.1.14
v0.1.15
v0.1.15
...
v20.1.0
v20.2.0
v20.2.0
v20.3.0
v20.3.0
v20.3.1
v20.3.1
v20.4.0
v20.4.0

このコマンドは以下の操作を行っています:

  1. curl -s https://nodejs.org/dist/:Node.jsの公式配布元からHTMLを取得します。
  2. grep -Eo 'v[0-9]+\.[0-9]+\.[0-9]+/':取得したHTMLからバージョン番号を抽出します。-Eオプションは拡張正規表現を使用することを指定し、-oオプションは一致した部分のみを出力します。
  3. sed 's/\///g':バージョン番号の末尾にあるスラッシュ(/)を削除します。
  4. sort -V:バージョン番号を順番に並べ替えます。-Vオプションはバージョン番号のような形式を正しくソートすることを指定します。

注意点

このコマンドはUNIXベースのシステム(LinuxやmacOSなど)で動作します。Windowsの場合、同等の操作を行うためにはWindows Subsystem for Linux(WSL)や、cygwin、git bashなどのツールが必要です。


まとめ

Node.jsのバージョン管理は、プロジェクトの安定性や互換性を確保するために重要です。今回紹介したコマンドを使えば、CLIから簡単にNode.jsのバージョン一覧を取得でき、適切なバージョンの選択に役立つでしょう。

寸評

質問一発で返ってきそうだが、以外にも引っかかっている。

  1. node.jsのマネージャであるvoltaでnodeを入れたいのだが、インストールできるバージョンの一覧はどのように取得できるのか
  2. コマンドラインからNode.jsで配布されているバージョンを簡単に取得するにはどうしたらよいか
  3. grep: invalid option -- P usage: grep [-abcdDEFGHhIiJLlMmnOopqRSsUVvwXxZz] [-A num] [-B num] [-C[num]] [-e pattern] [-f file] [--binary-files=value] [--color=when] [--context[=num]] [--directories=action] [--label] [--line-buffered] [--null] [pattern] [file ...] とエラーが出た。Macのターミナルで実行した。
  4. 何も出力されない。awkによる抽出が失敗していると見られる。curlのレスポンスを一部抜粋した。これを見て修正できるか。(コードを貼る)
  5. うまく動いた! 備忘録としてブログにまとめたい。CLIからnodeのバージョン一覧を取得する方法について、ブログ記事としてまとめてくれ。適切に見出しを入れてくれ。

失敗したが、実際の出力を貼ることでうまくいった。

目次