🐢

asdf で node-build の定義ファイルを手動更新する

2023/10/20に公開

asdf で Node.js を扱う場合、内部的には node-build によってインストール可能なバージョンとアーカイブの URL の定義ファイルが管理されている
この定義ファイルが数日更新されないこともあり[1]、そういう場合に手動でローカルの定義ファイルを更新して新バージョンをインストールする方法を毎回忘れるのでメモに残しておく。

手順だけ書くとこれ。

DIR=/tmp/node-defs
mkdir -p $DIR
npx -p @nodenv/node-build-update-defs nodenv-update-version-defs -f -d $DIR
NODE_BUILD_DEFINITIONS=$DIR asdf install nodejs 21.0.0

node-build-update-defs は node-build が定義ファイルを生成しているツールで、これをローカルで動かすには、nodenv プラグインとして動かす方法と npm パッケージとして動かす方法が用意されてる。asdf は nodenv を持ってないので、今回は npm パッケージとして動かす。
nodenv-update-version-defs の実行時に生成する定義ファイルの場所を指定してあげて、それを asdf の実行時にも環境変数 NODE_BUILD_DEFINITIONS 経由で渡してあげれば動く。

脚注
  1. 例えば v21.0.0 はリリースから 3 日間経ってもマージされていない↩︎

Discussion