From 34cb05a86074182bc04accf43937d297ececc18e Mon Sep 17 00:00:00 2001 From: Henrik Wenz Date: Fri, 14 Sep 2018 13:45:48 +0000 Subject: [PATCH] Remove obsolete webpack plugins (#5158) Since we are now using webpacks `mode` flag we can get rid of: * `webpack.optimize.ModuleConcatenationPlugin` * `webpack.DefinePlugin` (`process.env.NODE_ENV`) https://webpack.js.org/concepts/mode/ --- build/webpack.js | 4 ---- test/integration/basic/pages/process-env.js | 3 +++ test/integration/basic/test/index.test.js | 3 +++ test/integration/basic/test/process-env.js | 13 +++++++++++++ test/integration/production/pages/process-env.js | 3 +++ test/integration/production/test/index.test.js | 2 ++ test/integration/production/test/process-env.js | 13 +++++++++++++ 7 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 test/integration/basic/pages/process-env.js create mode 100644 test/integration/basic/test/process-env.js create mode 100644 test/integration/production/pages/process-env.js create mode 100644 test/integration/production/test/process-env.js diff --git a/build/webpack.js b/build/webpack.js index bfa78d2b..a89a633d 100644 --- a/build/webpack.js +++ b/build/webpack.js @@ -267,14 +267,10 @@ export default async function getBaseWebpackConfig (dir: string, {dev = false, i // required not to cache removed files useHashIndex: false }), - 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(), !isServer && new PagesPlugin(), diff --git a/test/integration/basic/pages/process-env.js b/test/integration/basic/pages/process-env.js new file mode 100644 index 00000000..42d87928 --- /dev/null +++ b/test/integration/basic/pages/process-env.js @@ -0,0 +1,3 @@ +export default () => ( +
{process.env.NODE_ENV}
+) diff --git a/test/integration/basic/test/index.test.js b/test/integration/basic/test/index.test.js index 8eeb7f67..b9798db6 100644 --- a/test/integration/basic/test/index.test.js +++ b/test/integration/basic/test/index.test.js @@ -16,6 +16,7 @@ import hmr from './hmr' import errorRecovery from './error-recovery' import dynamic from './dynamic' import asset from './asset' +import processEnv from './process-env' const context = {} jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000 * 60 * 5 @@ -42,6 +43,7 @@ describe('Basic Features', () => { renderViaHTTP(context.appPort, '/with-cdm'), renderViaHTTP(context.appPort, '/url-prop'), renderViaHTTP(context.appPort, '/url-prop-override'), + renderViaHTTP(context.appPort, '/process-env'), renderViaHTTP(context.appPort, '/nav'), renderViaHTTP(context.appPort, '/nav/about'), @@ -71,4 +73,5 @@ describe('Basic Features', () => { hmr(context, (p, q) => renderViaHTTP(context.appPort, p, q)) errorRecovery(context, (p, q) => renderViaHTTP(context.appPort, p, q)) asset(context) + processEnv(context) }) diff --git a/test/integration/basic/test/process-env.js b/test/integration/basic/test/process-env.js new file mode 100644 index 00000000..d7263fb1 --- /dev/null +++ b/test/integration/basic/test/process-env.js @@ -0,0 +1,13 @@ +/* global describe, it, expect */ +import webdriver from 'next-webdriver' + +export default (context, render) => { + describe('process.env', () => { + it('should set process.env.NODE_ENV in development', async () => { + const browser = await webdriver(context.appPort, '/process-env') + const nodeEnv = await browser.elementByCss('#node-env').text() + expect(nodeEnv).toBe('development') + browser.close() + }) + }) +} diff --git a/test/integration/production/pages/process-env.js b/test/integration/production/pages/process-env.js new file mode 100644 index 00000000..42d87928 --- /dev/null +++ b/test/integration/production/pages/process-env.js @@ -0,0 +1,3 @@ +export default () => ( +
{process.env.NODE_ENV}
+) diff --git a/test/integration/production/test/index.test.js b/test/integration/production/test/index.test.js index 18a3425b..1b78a0d0 100644 --- a/test/integration/production/test/index.test.js +++ b/test/integration/production/test/index.test.js @@ -14,6 +14,7 @@ import { import webdriver from 'next-webdriver' import fetch from 'node-fetch' import dynamicImportTests from './dynamic' +import processEnv from './process-env' import security from './security' import {BUILD_MANIFEST, REACT_LOADABLE_MANIFEST} from 'next/constants' @@ -277,5 +278,6 @@ describe('Production Usage', () => { dynamicImportTests(context, (p, q) => renderViaHTTP(context.appPort, p, q)) + processEnv(context) security(context) }) diff --git a/test/integration/production/test/process-env.js b/test/integration/production/test/process-env.js new file mode 100644 index 00000000..35c65896 --- /dev/null +++ b/test/integration/production/test/process-env.js @@ -0,0 +1,13 @@ +/* global describe, it, expect */ +import webdriver from 'next-webdriver' + +export default (context) => { + describe('process.env', () => { + it('should set process.env.NODE_ENV in production', async () => { + const browser = await webdriver(context.appPort, '/process-env') + const nodeEnv = await browser.elementByCss('#node-env').text() + expect(nodeEnv).toBe('production') + browser.close() + }) + }) +}