From db90e07e0383bceb9a83e9339ae18851522c4a2d Mon Sep 17 00:00:00 2001 From: Clark Du Date: Mon, 14 Oct 2019 22:50:11 +0100 Subject: [PATCH 1/4] fix: #source-map not work --- packages/webpack/src/config/base.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/webpack/src/config/base.js b/packages/webpack/src/config/base.js index 19f56bf70e31..2ab4c1668fd3 100644 --- a/packages/webpack/src/config/base.js +++ b/packages/webpack/src/config/base.js @@ -207,6 +207,7 @@ export default class WebpackBaseConfig { condition: 'some', filename: 'LICENSES' }, + sourceMap: this.devtool && /((inline|hidden|nosources)-)?source-?map/.test(this.devtool), terserOptions: { compress: { ecma: this.isModern ? 6 : undefined From 5e876b9ea04df78c6b249a13fb9106a15ba0b57d Mon Sep 17 00:00:00 2001 From: Clark Du Date: Thu, 17 Oct 2019 21:29:40 +0100 Subject: [PATCH 2/4] normalize devtool --- packages/webpack/src/config/base.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/webpack/src/config/base.js b/packages/webpack/src/config/base.js index 2ab4c1668fd3..1b88ab3f1890 100644 --- a/packages/webpack/src/config/base.js +++ b/packages/webpack/src/config/base.js @@ -207,7 +207,6 @@ export default class WebpackBaseConfig { condition: 'some', filename: 'LICENSES' }, - sourceMap: this.devtool && /((inline|hidden|nosources)-)?source-?map/.test(this.devtool), terserOptions: { compress: { ecma: this.isModern ? 6 : undefined @@ -440,11 +439,16 @@ export default class WebpackBaseConfig { if (typeof extend === 'function') { const extendedConfig = extend.call( this.builder, config, { loaders: this.loaders, ...this.nuxtEnv } - ) - // Only overwrite config when something is returned for backwards compatibility - if (extendedConfig !== undefined) { - return extendedConfig + ) || config + + const pragma = /@|#/ + const { devtool } = extendedConfig + if (typeof devtool === 'string' && pragma.test(devtool)) { + extendedConfig.devtool = devtool.replace(pragma, '') + consola.warn(`devtool has been normalized to ${extendedConfig.devtool} as webpack documented value`) } + + return extendedConfig } return config } @@ -470,6 +474,8 @@ export default class WebpackBaseConfig { // Clone deep avoid leaking config between Client and Server const extendedConfig = cloneDeep(this.extendConfig(config)) + this.validate(extendedConfig) + return extendedConfig } } From 10d8dad7c831c14cfdbd381ace596a35ced987b3 Mon Sep 17 00:00:00 2001 From: Clark Du Date: Thu, 17 Oct 2019 21:30:54 +0100 Subject: [PATCH 3/4] clear --- packages/webpack/src/config/base.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/webpack/src/config/base.js b/packages/webpack/src/config/base.js index 1b88ab3f1890..0a9425b672f3 100644 --- a/packages/webpack/src/config/base.js +++ b/packages/webpack/src/config/base.js @@ -474,8 +474,6 @@ export default class WebpackBaseConfig { // Clone deep avoid leaking config between Client and Server const extendedConfig = cloneDeep(this.extendConfig(config)) - this.validate(extendedConfig) - return extendedConfig } } From ec48c527ebbd4fbf2daf73ca621dc0c39b62d87d Mon Sep 17 00:00:00 2001 From: Clark Du Date: Thu, 17 Oct 2019 21:39:07 +0100 Subject: [PATCH 4/4] fix test --- test/fixtures/with-config/nuxt.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fixtures/with-config/nuxt.config.js b/test/fixtures/with-config/nuxt.config.js index 40289390d7eb..d3cd57827ac3 100644 --- a/test/fixtures/with-config/nuxt.config.js +++ b/test/fixtures/with-config/nuxt.config.js @@ -86,7 +86,7 @@ export default { transpile: 'vue-test', extend (config, options) { return Object.assign({}, config, { - devtool: '#source-map' + devtool: 'source-map' }) } },