From 673378e415bcb3bb33f8c3bb29ad49bf29778f4a Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Wed, 5 Sep 2018 17:49:49 +0200 Subject: [PATCH] Use DefinePlugin to pass distDir instead of manually passing (#5105) --- build/webpack.js | 7 ++++++- client/dev-error-overlay/hot-dev-client.js | 7 ++----- server/render.js | 2 -- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build/webpack.js b/build/webpack.js index 4efaafad..dbc7e91c 100644 --- a/build/webpack.js +++ b/build/webpack.js @@ -133,7 +133,8 @@ export default async function getBaseWebpackConfig (dir: string, {dev = false, i .split(process.platform === 'win32' ? ';' : ':') .filter((p) => !!p) - const outputPath = path.join(dir, config.distDir, isServer ? SERVER_DIRECTORY : '') + const distDir = path.join(dir, config.distDir) + const outputPath = path.join(distDir, isServer ? SERVER_DIRECTORY : '') const pagesEntries = await getPages(dir, {nextPagesDir: DEFAULT_PAGES_DIR, dev, buildId, isServer, pageExtensions: config.pageExtensions.join('|')}) const totalPages = Object.keys(pagesEntries).length const clientEntries = !isServer ? { @@ -260,6 +261,10 @@ export default async function getBaseWebpackConfig (dir: string, {dev = false, i new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(dev ? 'development' : 'production') }), + // This is used in client/dev-error-overlay/hot-dev-client.js to replace the dist directory + !isServer && dev && new webpack.DefinePlugin({ + 'process.env.__NEXT_DIST_DIR': JSON.stringify(distDir) + }), !dev && new webpack.optimize.ModuleConcatenationPlugin(), isServer && new PagesManifestPlugin(), !isServer && new BuildManifestPlugin(), diff --git a/client/dev-error-overlay/hot-dev-client.js b/client/dev-error-overlay/hot-dev-client.js index 76ac1b86..f2c5073d 100644 --- a/client/dev-error-overlay/hot-dev-client.js +++ b/client/dev-error-overlay/hot-dev-client.js @@ -33,10 +33,6 @@ import stripAnsi from 'strip-ansi' import {rewriteStacktrace} from '../source-map-support' import fetch from 'unfetch' -const { - distDir -} = window.__NEXT_DATA__ - // This alternative WebpackDevServer combines the functionality of: // https://github.com/webpack/webpack-dev-server/blob/webpack-1/client/index.js // https://github.com/webpack/webpack/blob/webpack-1/hot/dev-server.js @@ -108,7 +104,8 @@ export default function connect (options) { const error = new Error(err.message) error.name = err.name error.stack = err.stack - rewriteStacktrace(error, distDir) + // __NEXT_DIST_DIR is provided by webpack + rewriteStacktrace(error, process.env.__NEXT_DIST_DIR) return error } } diff --git a/server/render.js b/server/render.js index 3106cfc6..4860927f 100644 --- a/server/render.js +++ b/server/render.js @@ -165,8 +165,6 @@ async function doRender (req, res, pathname, query, { if (!Document.prototype || !Document.prototype.isReactComponent) throw new Error('_document.js is not exporting a React component') const doc =