From dffc37e04e2ad59ac7c10bef5ddcc6f301a6584c Mon Sep 17 00:00:00 2001 From: Aditya Pandey Date: Wed, 3 Nov 2021 04:33:41 +0530 Subject: [PATCH] Fix prerender if run inside `web` directory (#3657) * Fix prerender if ran inside `web` directory * Use absolute path when writing prerendered pages Co-authored-by: Daniel Choudhury --- packages/internal/src/build/babel/web.ts | 3 ++- packages/prerender/src/runPrerender.tsx | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/internal/src/build/babel/web.ts b/packages/internal/src/build/babel/web.ts index dee053db97e9..d7cfb1e57b5b 100644 --- a/packages/internal/src/build/babel/web.ts +++ b/packages/internal/src/build/babel/web.ts @@ -28,11 +28,12 @@ export const registerWebSideBabelHook = ({ // Even though we specify the config file, babel will still search for .babelrc // and merge them because we have specified the filename property, unless babelrc = false registerBabel({ + root: getPaths().base, configFile: getWebSideBabelConfigPath(), // incase user has a custom babel.config.js in api babelrc: false, extensions: ['.js', '.ts', '.tsx', '.jsx'], plugins: [...plugins], - ignore: ['node_modules'], + ignore: [/node_modules/], cache: false, overrides, }) diff --git a/packages/prerender/src/runPrerender.tsx b/packages/prerender/src/runPrerender.tsx index 0992c795041c..86566c8e84a3 100644 --- a/packages/prerender/src/runPrerender.tsx +++ b/packages/prerender/src/runPrerender.tsx @@ -1,4 +1,5 @@ import fs from 'fs' +import path from 'path' import React from 'react' @@ -96,11 +97,15 @@ export const writePrerenderedHtmlFile = ( outputHtmlPath: string, content: string ) => { + const outputHtmlAbsPath = path.join(getPaths().base, outputHtmlPath) // Copy default index.html to 200.html first // This is to prevent recursively rendering the home page if (outputHtmlPath === 'web/dist/index.html') { - fs.copyFileSync(outputHtmlPath, 'web/dist/200.html') + fs.copyFileSync( + outputHtmlAbsPath, + path.join(getPaths().base, 'web/dist/200.html') + ) } - writeToDist(outputHtmlPath, content) + writeToDist(outputHtmlAbsPath, content) }