先週は忙しすぎて死んでいた......。
ということで、本題の話。
Storybook を GitHub Actions で動かしたいとき、サンプルに npx wait-on tcp:6006
として他プロセスのサーバーが起動するのを待つ、というものがあるんですが、それが Node.js 18 だと一生終わりません。
サンプルにあるような下記のコマンドを Node.js 18 かつ GitHub Actions など特定の環境で行った場合、
$ npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \ "npx http-server storybook-static --port 6006 --silent" \ "npx wait-on tcp:6006 && yarn test-storybook"
そのまま Ctrl+C
で殺すか、タイムアウトするまで待ち続けます。
該当 Issue は下記の通りで、
- Waiting on tcp ports doesn't work in Node 18 #133
- wait-on failure for localhost of react-app Node.js 18 #137
コメントにあるように、
$ npx wait-on tcp:127.0.0.1:6006
などのようにすることで問題を回避することが可能です。
ただ、マシンによっては tcp:localhost:6006
ということもあるらしいですが、少なくとも GitHub Actions 環境では IP アドレスを指定することで回避可能です。
ということで、メモでした。