Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
fix: Write sourcemaps only if sourceMap is enabled
  • Loading branch information
bebraw committed Mar 13, 2017
commit 3122e43d2318a2e7544fdb46b2f7922512012e11
22 changes: 14 additions & 8 deletions lib/css-base.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
module.exports = function() {
module.exports = function(useSourceMap) {
var list = [];

// return the list of modules as css string
list.toString = function toString() {
return this.map(function (item) {
var content = cssWithMappingToString(item);
var content = cssWithMappingToString(item, useSourceMap);
if(item[2]) {
return "@media " + item[2] + "{" + content + "}";
} else {
Expand Down Expand Up @@ -47,17 +47,23 @@ module.exports = function() {
return list;
};

function cssWithMappingToString(item) {
function cssWithMappingToString(item, useSourceMap) {
var content = item[1] || '';
var cssMapping = item[3];
if (!cssMapping) {
return content;
}
var sourceMapping = toComment(cssMapping);
var sourceURLs = cssMapping.sources.map(function (source) {
return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
});
return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');

if (useSourceMap) {
var sourceMapping = toComment(cssMapping);
var sourceURLs = cssMapping.sources.map(function (source) {
return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
});

return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
}

return [content].join('\n');
}

// Adapted from convert-source-map (MIT)
Expand Down
4 changes: 3 additions & 1 deletion lib/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,9 @@ module.exports = function(content, map) {
}

// embed runtime
callback(null, "exports = module.exports = require(" + loaderUtils.stringifyRequest(this, require.resolve("./css-base.js")) + ")();\n" +
callback(null, "exports = module.exports = require(" +
loaderUtils.stringifyRequest(this, require.resolve("./css-base.js")) +
")(" + query.sourceMap + ");\n" +
"// imports\n" +
importJs + "\n\n" +
"// module\n" +
Expand Down
2 changes: 1 addition & 1 deletion test/cssBaseTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ describe("css-base", function() {
"@media screen{body { a: 1; }}");
});
it("should toString with source mapping", function() {
var m = base();
var m = base(true);
m.push([1, "body { a: 1; }", "", {
file: "test.scss",
sources: [
Expand Down