diff --git a/packages/gatsby/src/utils/webpack/get-ssr-chunk-hashes.ts b/packages/gatsby/src/utils/webpack/get-ssr-chunk-hashes.ts index e8dfcb5ce6f7..f5181020bdc5 100644 --- a/packages/gatsby/src/utils/webpack/get-ssr-chunk-hashes.ts +++ b/packages/gatsby/src/utils/webpack/get-ssr-chunk-hashes.ts @@ -6,8 +6,14 @@ type ChunkGroup = webpack.Compilation["chunkGroups"][0] function getHashes( chunkGroup: ChunkGroup, compilation: webpack.Compilation, - hashes: Array = [] + hashes: Array = [], + visitedChunkGroups: Set = new Set() ): Array { + if (visitedChunkGroups.has(chunkGroup)) { + return hashes + } + visitedChunkGroups.add(chunkGroup) + for (const chunk of chunkGroup.chunks) { if (!chunk.hash) { throw new Error( @@ -23,7 +29,7 @@ function getHashes( ) if (isNotImportedByAsyncRequires) { - getHashes(childChunkGroup, compilation, hashes) + getHashes(childChunkGroup, compilation, hashes, visitedChunkGroups) } }