diff --git a/lib/plugins/optimize-css-assets.js b/lib/plugins/optimize-css-assets.js index 8c30adf8..daeda6d6 100644 --- a/lib/plugins/optimize-css-assets.js +++ b/lib/plugins/optimize-css-assets.js @@ -20,17 +20,19 @@ module.exports = function(webpackConfig) { const optimizePluginOptions = { // see: https://github.com/NMFR/optimize-css-assets-webpack-plugin/issues/53#issuecomment-400294569 // we always use annotations: true, which is the setting if you're - // outputting to a separate file because this plugin is only + // outputting to a separate file. This plugin is only // used in production, and, in production, we always use the // source-map option (a separate file) in config-generator. - cssProcessorOptions: { - map: { - inline: false, - annotation: true, - } - } + cssProcessorOptions: {} }; + if (webpackConfig.useSourceMaps) { + optimizePluginOptions.cssProcessorOptions.map = { + inline: false, + annotation: true, + }; + } + return new OptimizeCSSAssetsPlugin( applyOptionsCallback(webpackConfig.optimizeCssPluginOptionsCallback, optimizePluginOptions) ); diff --git a/test/functional.js b/test/functional.js index c7f0e6dc..0d6dfc7b 100644 --- a/test/functional.js +++ b/test/functional.js @@ -621,6 +621,29 @@ describe('Functional tests using webpack', function() { }); }); + it('Without enableSourceMaps(), there are no sourcemaps in production', (done) => { + const config = createWebpackConfig('www/build', 'production'); + config.setPublicPath('/build'); + config.addEntry('main', './js/no_require'); + config.addStyleEntry('bg', './css/background_image.scss'); + config.addStyleEntry('font', './css/roboto_font.css'); + config.enableSassLoader(); + + testSetup.runWebpack(config, (webpackAssert) => { + webpackAssert.assertOutputFileDoesNotHaveSourcemap( + 'main.js' + ); + webpackAssert.assertOutputFileDoesNotHaveSourcemap( + 'font.css' + ); + webpackAssert.assertOutputFileDoesNotHaveSourcemap( + 'bg.css' + ); + + done(); + }); + }); + it('Code splitting a scss file works', (done) => { const config = createWebpackConfig('www/build', 'dev'); config.setPublicPath('/build');