From 8cf5a21752230cd1bdbbb813f04633ac674e5e55 Mon Sep 17 00:00:00 2001 From: Ivan Nikulin Date: Mon, 21 Aug 2017 22:21:16 +0200 Subject: [PATCH] Change build.extend hook to return new webpack config --- lib/builder/webpack/client.config.js | 6 +++++- lib/builder/webpack/server.config.js | 6 +++++- test/fixtures/with-config/nuxt.config.js | 4 +++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/builder/webpack/client.config.js b/lib/builder/webpack/client.config.js index 125ae385fa..e18e30e6ea 100644 --- a/lib/builder/webpack/client.config.js +++ b/lib/builder/webpack/client.config.js @@ -220,10 +220,14 @@ export default function webpackClientConfig () { // Extend config if (typeof this.options.build.extend === 'function') { - this.options.build.extend.call(this, config, { + const extendedConfig = this.options.build.extend.call(this, config, { dev: this.options.dev, isClient: true }) + // Only overwrite config when something is returned for backwards compatibility + if (extendedConfig !== undefined) { + config = extendedConfig + } } return config diff --git a/lib/builder/webpack/server.config.js b/lib/builder/webpack/server.config.js index e9169d4084..481cbde66f 100644 --- a/lib/builder/webpack/server.config.js +++ b/lib/builder/webpack/server.config.js @@ -74,10 +74,14 @@ export default function webpackServerConfig () { // Extend config if (typeof this.options.build.extend === 'function') { - this.options.build.extend.call(this, config, { + const extendedConfig = this.options.build.extend.call(this, config, { dev: this.options.dev, isServer: true }) + // Only overwrite config when something is returned for backwards compatibility + if (extendedConfig !== undefined) { + config = extendedConfig + } } return config diff --git a/test/fixtures/with-config/nuxt.config.js b/test/fixtures/with-config/nuxt.config.js index d97d992680..adf8eac489 100644 --- a/test/fixtures/with-config/nuxt.config.js +++ b/test/fixtures/with-config/nuxt.config.js @@ -34,7 +34,9 @@ module.exports = { generateStatsFile: true }, extend (config, options) { - config.devtool = 'nosources-source-map' + return Object.assign({}, config, { + devtool: 'nosources-source-map' + }) } }, css: [