|
3 | 3 | Author Tobias Koppers @sokra |
4 | 4 | */ |
5 | 5 | // css base code, injected by the css-loader |
6 | | -module.exports = function() { |
| 6 | +module.exports = function(useSourceMap) { |
7 | 7 | var list = []; |
8 | 8 |
|
9 | 9 | // return the list of modules as css string |
10 | 10 | list.toString = function toString() { |
11 | 11 | return this.map(function (item) { |
12 | | -var content = cssWithMappingToString(item); |
| 12 | +var content = cssWithMappingToString(item, useSourceMap); |
13 | 13 | if(item[2]) { |
14 | 14 | return "@media " + item[2] + "{" + content + "}"; |
15 | 15 | } else { |
@@ -47,16 +47,29 @@ module.exports = function() { |
47 | 47 | return list; |
48 | 48 | }; |
49 | 49 |
|
50 | | -function cssWithMappingToString(item) { |
| 50 | +function cssWithMappingToString(item, useSourceMap) { |
51 | 51 | var content = item[1] || ''; |
52 | 52 | var cssMapping = item[3]; |
53 | 53 | if (!cssMapping) { |
54 | 54 | return content; |
55 | 55 | } |
56 | | -var convertSourceMap = require('./convert-source-map'); |
57 | | -var sourceMapping = convertSourceMap.fromObject(cssMapping).toComment({multiline: true}); |
58 | | -var sourceURLs = cssMapping.sources.map(function (source) { |
59 | | -return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' |
60 | | -}); |
61 | | -return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); |
| 56 | + |
| 57 | +if (useSourceMap) { |
| 58 | +var sourceMapping = toComment(cssMapping); |
| 59 | +var sourceURLs = cssMapping.sources.map(function (source) { |
| 60 | +return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' |
| 61 | +}); |
| 62 | + |
| 63 | +return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); |
| 64 | +} |
| 65 | + |
| 66 | +return [content].join('\n'); |
| 67 | +} |
| 68 | + |
| 69 | +// Adapted from convert-source-map (MIT) |
| 70 | +function toComment(sourceMap) { |
| 71 | + var base64 = new Buffer(JSON.stringify(sourceMap)).toString('base64'); |
| 72 | + var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; |
| 73 | + |
| 74 | + return '/*# ' + data + ' */'; |
62 | 75 | } |
0 commit comments