From a9a3fc1fcad0d05e508caa1e38fd6e3e33cbb238 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Mon, 20 Aug 2018 13:01:21 +0200 Subject: [PATCH] Warn if a specific page is not found in build manifest (#4986) There's an edge case @timothyis is running into, this will show exactly what files are missing. I currently can't reproduce, so this is a first step at providing better error messages --- server/render.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/server/render.js b/server/render.js index 025d501a..c1d89a83 100644 --- a/server/render.js +++ b/server/render.js @@ -43,6 +43,18 @@ export function renderErrorToHTML (err, req, res, pathname, query, opts = {}) { return doRender(req, res, pathname, query, { ...opts, err, page: '/_error' }) } +function getPageFiles (buildManifest, page) { + const normalizedPage = normalizePagePath(page) + const files = buildManifest.pages[normalizedPage] + + if (!files) { + console.warn(`Could not find files for ${normalizedPage} in .next/build-manifest.json`) + return [] + } + + return files +} + async function doRender (req, res, pathname, query, { err, page, @@ -87,9 +99,9 @@ async function doRender (req, res, pathname, query, { const devFiles = buildManifest.devFiles const files = [ ...new Set([ - ...buildManifest.pages[normalizePagePath(page)], - ...buildManifest.pages[normalizePagePath('/_app')], - ...buildManifest.pages[normalizePagePath('/_error')] + ...getPageFiles(buildManifest, page), + ...getPageFiles(buildManifest, '/_app'), + ...getPageFiles(buildManifest, '/_error') ]) ]