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
このコマンドは以下の操作を行っています:
curl -s https://nodejs.org/dist/
:Node.jsの公式配布元からHTMLを取得します。grep -Eo 'v[0-9]+\.[0-9]+\.[0-9]+/'
:取得したHTMLからバージョン番号を抽出します。-E
オプションは拡張正規表現を使用することを指定し、-o
オプションは一致した部分のみを出力します。sed 's/\///g'
:バージョン番号の末尾にあるスラッシュ(/
)を削除します。sort -V
:バージョン番号を順番に並べ替えます。-V
オプションはバージョン番号のような形式を正しくソートすることを指定します。
注意点
このコマンドはUNIXベースのシステム(LinuxやmacOSなど)で動作します。Windowsの場合、同等の操作を行うためにはWindows Subsystem for Linux(WSL)や、cygwin、git bashなどのツールが必要です。
まとめ
Node.jsのバージョン管理は、プロジェクトの安定性や互換性を確保するために重要です。今回紹介したコマンドを使えば、CLIから簡単にNode.jsのバージョン一覧を取得でき、適切なバージョンの選択に役立つでしょう。
寸評
質問一発で返ってきそうだが、以外にも引っかかっている。
- node.jsのマネージャであるvoltaでnodeを入れたいのだが、インストールできるバージョンの一覧はどのように取得できるのか
- コマンドラインからNode.jsで配布されているバージョンを簡単に取得するにはどうしたらよいか
- 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のターミナルで実行した。
- 何も出力されない。awkによる抽出が失敗していると見られる。curlのレスポンスを一部抜粋した。これを見て修正できるか。(コードを貼る)
- うまく動いた! 備忘録としてブログにまとめたい。CLIからnodeのバージョン一覧を取得する方法について、ブログ記事としてまとめてくれ。適切に見出しを入れてくれ。
失敗したが、実際の出力を貼ることでうまくいった。