【node/yarn】asdfでNode.jsのバージョンを更新した時にyarnを使えるようにする

JavaScript

こんにちは、しきゆらです。
今回は、asdfを使ってNode.jsのバージョンを更新した後にyarnが使えなくなる問題を解決する方法をメモします。

なお、yarn自体のインストール方法は過去にメモしてあるので、こちらもどうぞ。
・・・おそらく、自分が一番読んでいる記事はこれだと思います。
あーどうだっけ、と思ってググると大体上の方に出てきたり、誰かが引用してくれてたりするので「あぁ、これでよかったのか・・・」となる記事の筆頭です。

さて、Node.jsのバージョン更新時も上記と似たような形で行けますが一応のメモとして残しておきます。
一応Node.jsの更新からメモしておきます。

楽天Kobo電子書籍ストア
¥3,740 (2025/11/01 18:16時点 | 楽天市場調べ)

手順

asdfでNode.jsの更新をする

asdfの詳しいコマンドは公式サイトを参照ください。

まず、以下のコマンドでインストール可能なバージョンの一覧を確認できます。

$ asdf list all nodejs
...
24.5.0
24.6.0
24.7.0
24.8.0
24.9.0
24.10.0
24.11.0
25.0.0
25.1.0

リストの中から必要なバージョンを選び、以下のコマンドで新しいバージョンをインストール。

$ asdf install nodejs x.y.z

インストールが完了したら、現在のプロジェクトで利用しているNode.jsのバージョンを更新しましょう。
以下のコマンドで、.tool-versionsで指定しているNode.jsのバージョンを指定します。

$ asdf set nodejs x.y.z

実行後、.tool-versionsの中で指定しているバージョンが更新したものになっているかを確認しておきましょう。
合わせて、node -vで意図したバージョンが表示されることを確認しておけばOKです。
なお、バージョン名や無効な名前を指定している場合は以下のように怒られるのでご注意を。

No version is set for command yarn
Consider adding one of the following versions in your config file at /path/to/.tool-versions
nodejs x.y.z

また、asdfのバージョンがv0.16以降の場合はasdf globalasdf localコマンドが変更されているため使えません。
上記のasdf setに置き換えられているのでご注意ください。
これまでのasdf localが今のasdf setと同じ挙動になります。
参考: https://asdf-vm.com/ja-jp/manage/commands.html

# 現在のパスに.tool-versionsを作成・追記 / 以前の asdf local
asdf set nodejs x.y.z

# システム全体で使うバージョンを指定する / 以前のasdf global
asdf set --home nodejs x.y.z # asdf set -u でも同様

# 現在のパスから見て一番近い親ディレクトリの.tool-versionsに追記
asdf set --parent nodejx x.y.z # asdf set -p でも同様 

yarnを使えるようにする

更新直後にyarnコマンドを実行すると、おそらく以下のように怒られるはずです。
内容は上記のNodeのバージョン指定が失敗しているときと同じです。

$ yarn
No version is set for command yarn
Consider adding one of the following versions in your config file at /path/to/.tool-versions
nodejs x.y.z

npmコマンドは動くはずなので、ひとまずは以下のコマンドでCorepackをインストール。

npm install -g corepack

もし古いバージョンのNodeやnpmを使っている場合は、以下のように表示されます。

$ npm install -g corepack
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'corepack@0.34.1',
npm WARN EBADENGINE   required: { node: '^20.10.0 || ^22.11.0 || >=24.0.0' },
npm WARN EBADENGINE   current: { node: 'v19.9.0', npm: '9.6.3' }
npm WARN EBADENGINE }

これだと実行できないので、Corepackが必要としているNodeバージョンまで更新することを検討してください。
(上記はNode.js のv19.9.0環境で実行した時の表示です)

Node.jsのバージョンやサポート期間についてはNode.jsの公式サイトをご覧ください。

ページを見ると記載(2025/11/01)時点では、20系・22系は重大なバグ修正やセキュリティ更新が主、24系が安定板、25系が新機能を試す開発者向け版のようです。
19系はすでにサポートが終了しているので怒られていたわけですね。

問題なければ、以下のようにすっとインストールが完了するはずです。

$ npm install -g corepack

changed 1 package in 6s

Corepackが入れば、yarnのv1が動くはずです。

$ yarn -v
1.22.22

yarnが動けば、後はバージョンを指定すればOKですね。

$ yarn version set stable
➤ YN0000: Done in 0s 3ms

$ yarn -v
4.10.3

はい、これでNode.jsの更新とyarnが動く環境ができました。

あとは、いつも通りコード書いたりビルド・デプロイしたりできるはず。

まとめ

今回は、asdfで管理しているNode.jsを更新した後にyarnが動くようにする手順をメモしました。
直近で久々にJS環境を触ったときにasdfのコマンドが変わったりNode.jsを更新したらyarnが使えなくなったのでちょっとアワアワしましたが、動くところまで持って行けたので一安心です。
もし似たようなことでお困りの方の参考になればうれしいです。

楽天Kobo電子書籍ストア
¥3,740 (2025/11/01 18:16時点 | 楽天市場調べ)

今回は、ここまで。

おわり

Posted by しきゆら