シチュエーション
Gatsby.jsで大量の画像ノードを作成したところ、あるとき突然以下のようなエラーが出ました。
このエラーはローカルで開発しているMac上では再現せず、Vercelでデプロイした場合のみ発生しました。
解決方法
gatsby-node.js
の一番上に、以下を追加し、再度デプロイします。
const realFs = require('fs')
const gracefulFs = require('graceful-fs')
gracefulFs.gracefulify(realFs)
このエラーはデフォルトのfs
を使用していると起こる一般的なエラーらしく、その対策として存在するgraceful-fs
を使用するようにgatsby-source-filesystem
に伝えている感じなのかな、と思います。
本当の解決方法
上記の解決方法は、一時的に問題を解決しましたが、再発しました。
なので、Netlifyに変更したところ、問題が解決しました。
Vercelの方がビルドもCDNもはやいので残念ですが、GatsbyとVercelは相性が悪いのかもしれません。
参考
この対処法は以下のissueに乗っていました。
https://github.com/gatsbyjs/gatsby/issues/12011