@@ -35,13 +35,16 @@ module.exports = function (css, map) {
3535 var query = loaderUtils . parseQuery ( this . query )
3636 var options = this . options . vue || { }
3737 var autoprefixOptions = options . autoprefixer
38+ var postcssOptions = options . postcss
3839
39- // plugins
40- var plugins = options . postcss
41- if ( typeof plugins === 'function' ) {
42- plugins = plugins . call ( this , this )
43- } else if ( typeof options . postcss === 'object' && options . postcss . plugins ) {
44- plugins = options . postcss . plugins
40+ // postcss plugins
41+ var plugins
42+ if ( Array . isArray ( postcssOptions ) ) {
43+ plugins = postcssOptions
44+ } else if ( typeof postcssOptions === 'function' ) {
45+ plugins = postcssOptions . call ( this , this )
46+ } else if ( isObject ( postcssOptions ) && postcssOptions . plugins ) {
47+ plugins = postcssOptions . plugins
4548 }
4649 plugins = plugins ? plugins . slice ( ) : [ ] // make sure to copy it
4750
@@ -75,7 +78,7 @@ module.exports = function (css, map) {
7578 ! this . minimize &&
7679 options . cssSourceMap !== false &&
7780 process . env . NODE_ENV !== 'production' &&
78- ! options . postcss . options . map
81+ ! ( isObject ( postcssOptions ) && postcssOptions . options && postcssOptions . map )
7982 ) {
8083 opts . map = {
8184 inline : false ,
@@ -85,10 +88,10 @@ module.exports = function (css, map) {
8588 }
8689
8790 // postcss options from configuration
88- if ( options . postcss && options . postcss . options ) {
89- for ( var option in options . postcss . options ) {
91+ if ( isObject ( postcssOptions ) && postcssOptions . options ) {
92+ for ( var option in postcssOptions . options ) {
9093 if ( ! opts . hasOwnProperty ( option ) ) {
91- opts [ option ] = options . postcss . options [ option ]
94+ opts [ option ] = postcssOptions . options [ option ]
9295 }
9396 }
9497 }
@@ -104,3 +107,7 @@ module.exports = function (css, map) {
104107 cb ( e )
105108 } )
106109}
110+
111+ function isObject ( val ) {
112+ return val && typeof val === 'object'
113+ }
0 commit comments