diff --git a/lib/loader.js b/lib/loader.js index b55b35f9c..949165057 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -16,10 +16,13 @@ module.exports = function(content, map) { var root = query.root; var moduleMode = query.modules || query.module; var camelCaseKeys = query.camelCase || query.camelcase; + var sourceMap = query.sourceMap || false; var resolve = createResolver(query.alias); - if(map !== null && typeof map !== "string") { + if(sourceMap && map !== null && typeof map !== "string") { map = JSON.stringify(map); + } else { + map = null; } processCss(content, map, { diff --git a/test/sourceMapTest.js b/test/sourceMapTest.js index 39401e950..de93d8682 100644 --- a/test/sourceMapTest.js +++ b/test/sourceMapTest.js @@ -10,6 +10,24 @@ describe("source maps", function() { testWithMap("falsy: undefined map doesn't cause an error", ".class { a: b c d; }", undefined, [ [1, ".class { a: b c d; }", ""] ]); + testWithMap("should don't generate sourceMap when `sourceMap: false` and map exist", + ".class { a: b c d; }", + { + file: 'test.css', + mappings: 'AAAA,SAAS,SAAS,EAAE', + names: [], + sourceRoot: '', + sources: [ '/folder/test.css' ], + sourcesContent: [ '.class { a: b c d; }' ], + version: 3 + }, + [ + [1, ".class { a: b c d; }", ""] + ], + { + query: "?sourceMap=false" + } + ); testMap("generate sourceMap (1 loader)", ".class { a: b c d; }", undefined, { loaders: [{request: "/path/css-loader"}], options: { context: "/" }, @@ -61,4 +79,13 @@ describe("source maps", function() { version: 3 }] ]); + testMap("don't generate sourceMap (1 loader)", ".class { a: b c d; }", undefined, { + loaders: [{request: "/path/css-loader"}], + options: { context: "/" }, + resource: "/folder/test.css", + request: "/path/css-loader!/folder/test.css", + query: "?sourceMap=false" + }, [ + [1, ".class { a: b c d; }", ""] + ]); });