diff --git a/packages/gatsby/src/commands/build.ts b/packages/gatsby/src/commands/build.ts index 2ed486536da02..f2e2aec0942c7 100644 --- a/packages/gatsby/src/commands/build.ts +++ b/packages/gatsby/src/commands/build.ts @@ -286,6 +286,9 @@ module.exports = async function build( ) } + // Start saving page.mode in the main process (while queries run in workers in parallel) + const waitMaterializePageMode = materializePageMode() + let waitForWorkerPoolRestart = Promise.resolve() if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) { await runQueriesInWorkersQueue(workerPool, queryIds, { @@ -322,6 +325,7 @@ module.exports = async function build( } if (process.send && shouldGenerateEngines()) { + await waitMaterializePageMode process.send({ type: `LOG_ACTION`, action: { @@ -401,9 +405,6 @@ module.exports = async function build( await waitForWorkerPoolRestart - // Start saving page.mode in the main process (while HTML is generated in workers in parallel) - const waitMaterializePageMode = materializePageMode() - const { toRegenerate, toDelete } = await buildHTMLPagesAndDeleteStaleArtifacts({ program, diff --git a/packages/gatsby/src/utils/page-mode.ts b/packages/gatsby/src/utils/page-mode.ts index 6574e5984b58c..08be1ddbc2a58 100644 --- a/packages/gatsby/src/utils/page-mode.ts +++ b/packages/gatsby/src/utils/page-mode.ts @@ -8,6 +8,7 @@ import { import { reportOnce } from "./report-once" import { ROUTES_DIRECTORY } from "../constants" import { Runner } from "../bootstrap/create-graphql-runner" +import { getDataStore } from "../datastore" type IPageConfigFn = (arg: { params: Record }) => { defer: boolean @@ -111,6 +112,7 @@ export async function materializePageMode(): Promise { await new Promise(resolve => setImmediate(resolve)) } } + await getDataStore().ready() } export async function preparePageTemplateConfigs(