@@ -11,38 +11,48 @@ exports.assetsPath = function (_path) {
11
11
12
12
exports . cssLoaders = function ( options ) {
13
13
options = options || { }
14
+
15
+ var cssLoader = {
16
+ loader : 'css-loader' ,
17
+ options : {
18
+ minimize : process . env . NODE_ENV === 'production' ,
19
+ sourceMap : options . sourceMap
20
+ }
21
+ }
22
+
14
23
// generate loader string to be used with extract text plugin
15
- function generateLoaders ( loaders ) {
16
- var sourceLoader = loaders . map ( function ( loader ) {
17
- var extraParamChar
18
- if ( / \? / . test ( loader ) ) {
19
- loader = loader . replace ( / \? / , '-loader?' )
20
- extraParamChar = '&'
21
- } else {
22
- loader = loader + '-loader'
23
- extraParamChar = '?'
24
- }
25
- return loader + ( options . sourceMap ? extraParamChar + 'sourceMap' : '' )
26
- } ) . join ( '!' )
24
+ function generateLoaders ( loader , loaderOptions ) {
25
+ var loaders = [ cssLoader ]
26
+ if ( loader ) {
27
+ loaders . push ( {
28
+ loader : loader + '-loader' ,
29
+ options : Object . assign ( { } , loaderOptions , {
30
+ sourceMap : options . sourceMap
31
+ } )
32
+ } )
33
+ }
27
34
28
35
// Extract CSS when that option is specified
29
36
// (which is the case during production build)
30
37
if ( options . extract ) {
31
- return ExtractTextPlugin . extract ( 'vue-style-loader' , sourceLoader )
38
+ return ExtractTextPlugin . extract ( {
39
+ use : loaders ,
40
+ fallback : 'vue-style-loader'
41
+ } )
32
42
} else {
33
- return [ 'vue-style-loader' , sourceLoader ] . join ( '!' )
43
+ return [ 'vue-style-loader' ] . concat ( loaders )
34
44
}
35
45
}
36
46
37
47
// http://vuejs.github.io/vue-loader/en/configurations/extract-css.html
38
48
return {
39
- css : generateLoaders ( [ 'css' ] ) ,
40
- postcss : generateLoaders ( [ 'css' ] ) ,
41
- less : generateLoaders ( [ 'css' , ' less'] ) ,
42
- sass : generateLoaders ( [ 'css ', 'sass? indentedSyntax' ] ) ,
43
- scss : generateLoaders ( [ 'css' , ' sass'] ) ,
44
- stylus : generateLoaders ( [ 'css' , ' stylus'] ) ,
45
- styl : generateLoaders ( [ 'css' , ' stylus'] )
49
+ css : generateLoaders ( ) ,
50
+ postcss : generateLoaders ( ) ,
51
+ less : generateLoaders ( ' less') ,
52
+ sass : generateLoaders ( 'sass ', { indentedSyntax : true } ) ,
53
+ scss : generateLoaders ( ' sass') ,
54
+ stylus : generateLoaders ( ' stylus') ,
55
+ styl : generateLoaders ( ' stylus')
46
56
}
47
57
}
48
58
@@ -54,7 +64,7 @@ exports.styleLoaders = function (options) {
54
64
var loader = loaders [ extension ]
55
65
output . push ( {
56
66
test : new RegExp ( '\\.' + extension + '$' ) ,
57
- loader : loader
67
+ use : loader
58
68
} )
59
69
}
60
70
return output
0 commit comments