@@ -9,7 +9,7 @@ const findExisting = (context, files) => {
99 }
1010}
1111
12- module . exports = ( api , options ) => {
12+ module . exports = ( api , rootOptions ) => {
1313 api . chainWebpack ( webpackConfig => {
1414 const getAssetPath = require ( '../util/getAssetPath' )
1515 const shadowMode = ! ! process . env . VUE_CLI_CSS_SHADOW_MODE
@@ -22,16 +22,15 @@ module.exports = (api, options) => {
2222 } catch ( e ) { }
2323
2424 const {
25- modules = false ,
2625 extract = isProd ,
2726 sourceMap = false ,
2827 loaderOptions = { }
29- } = options . css || { }
28+ } = rootOptions . css || { }
3029
3130 const shouldExtract = extract !== false && ! shadowMode
3231 const filename = getAssetPath (
33- options ,
34- `css/[name]${ options . filenameHashing ? '.[contenthash:8]' : '' } .css`
32+ rootOptions ,
33+ `css/[name]${ rootOptions . filenameHashing ? '.[contenthash:8]' : '' } .css`
3534 )
3635 const extractOptions = Object . assign ( {
3736 filename,
@@ -71,7 +70,7 @@ module.exports = (api, options) => {
7170 cssDeclarationSorter : false
7271 } ]
7372 }
74- if ( options . productionSourceMap && sourceMap ) {
73+ if ( rootOptions . productionSourceMap && sourceMap ) {
7574 cssnanoOptions . map = { inline : false }
7675 }
7776
@@ -92,9 +91,10 @@ module.exports = (api, options) => {
9291
9392 // rules for normal CSS imports
9493 const normalRule = baseRule . oneOf ( 'normal' )
95- applyLoaders ( normalRule , modules )
94+ const treatAllAsModules = ! ! ( rootOptions . css && rootOptions . css . modules )
95+ applyLoaders ( normalRule , treatAllAsModules )
9696
97- function applyLoaders ( rule , modules ) {
97+ function applyLoaders ( rule , isCssModule ) {
9898 if ( shouldExtract ) {
9999 rule
100100 . use ( 'extract-css-loader' )
@@ -122,15 +122,11 @@ module.exports = (api, options) => {
122122 )
123123 } , loaderOptions . css )
124124
125- if ( modules ) {
126- const {
127- localIdentName = '[name]_[local]_[hash:base64:5]'
128- } = loaderOptions . css || { }
129- Object . assign ( cssLoaderOptions , {
130- modules : {
131- localIdentName
132- }
133- } )
125+ if ( isCssModule ) {
126+ cssLoaderOptions . modules = {
127+ localIdentName : '[name]_[local]_[hash:base64:5]' ,
128+ ...cssLoaderOptions . modules
129+ }
134130 }
135131
136132 rule
@@ -186,7 +182,7 @@ module.exports = (api, options) => {
186182 webpackConfig
187183 . plugin ( 'optimize-css' )
188184 . use ( require ( '@intervolga/optimize-cssnano-plugin' ) , [ {
189- sourceMap : options . productionSourceMap && sourceMap ,
185+ sourceMap : rootOptions . productionSourceMap && sourceMap ,
190186 cssnanoOptions
191187 } ] )
192188 }
0 commit comments