💥
Node.jsのバージョンをv18にしたらnode-gypのinstallがコケた
起きたこと
- CIのNode.jsのバージョンをv16 → v18に上げたらnpm iで依存に含まれていたnode-gypのbuildがコケるエラーが発生した
- エラーの内容はPythonのパスが見つからない、という内容
- 更新差分はNode.jsのバージョンだけ
原因
- node-gypのinsatll時、まずはnode-pre-gypが実行され、実行環境のNode.jsのバージョンとinstallするnode-gypのバージョンに適合するbinaryをAmazon S3からダウンロードできないか試行する
- これができなかった場合、buildする
- v16ではbinaryを落とせたため、buildする必要がなかったためコケなかった
- v18にしたことでbuildする必要が出てきた → buildに必要な依存がなかったためCIがコケた
解決策
node-gypのbuildに必要、かつ環境で足りていない依存を入れてあげる
公式ドキュメント通りにやればいい
ひとこと
node-gypは癖がある、くらいの浅い認識だったがnode-pre-gypを初めて意識した
なるほどなー
Discussion