|
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