@@ -9,7 +9,7 @@ const findExisting = (context, files) => {
9
9
}
10
10
}
11
11
12
- module . exports = ( api , options ) => {
12
+ module . exports = ( api , rootOptions ) => {
13
13
api . chainWebpack ( webpackConfig => {
14
14
const getAssetPath = require ( '../util/getAssetPath' )
15
15
const shadowMode = ! ! process . env . VUE_CLI_CSS_SHADOW_MODE
@@ -22,16 +22,15 @@ module.exports = (api, options) => {
22
22
} catch ( e ) { }
23
23
24
24
const {
25
- modules = false ,
26
25
extract = isProd ,
27
26
sourceMap = false ,
28
27
loaderOptions = { }
29
- } = options . css || { }
28
+ } = rootOptions . css || { }
30
29
31
30
const shouldExtract = extract !== false && ! shadowMode
32
31
const filename = getAssetPath (
33
- options ,
34
- `css/[name]${ options . filenameHashing ? '.[contenthash:8]' : '' } .css`
32
+ rootOptions ,
33
+ `css/[name]${ rootOptions . filenameHashing ? '.[contenthash:8]' : '' } .css`
35
34
)
36
35
const extractOptions = Object . assign ( {
37
36
filename,
@@ -71,7 +70,7 @@ module.exports = (api, options) => {
71
70
cssDeclarationSorter : false
72
71
} ]
73
72
}
74
- if ( options . productionSourceMap && sourceMap ) {
73
+ if ( rootOptions . productionSourceMap && sourceMap ) {
75
74
cssnanoOptions . map = { inline : false }
76
75
}
77
76
@@ -92,9 +91,10 @@ module.exports = (api, options) => {
92
91
93
92
// rules for normal CSS imports
94
93
const normalRule = baseRule . oneOf ( 'normal' )
95
- applyLoaders ( normalRule , modules )
94
+ const treatAllAsModules = ! ! ( rootOptions . css && rootOptions . css . modules )
95
+ applyLoaders ( normalRule , treatAllAsModules )
96
96
97
- function applyLoaders ( rule , modules ) {
97
+ function applyLoaders ( rule , isCssModule ) {
98
98
if ( shouldExtract ) {
99
99
rule
100
100
. use ( 'extract-css-loader' )
@@ -122,15 +122,11 @@ module.exports = (api, options) => {
122
122
)
123
123
} , loaderOptions . css )
124
124
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
+ }
134
130
}
135
131
136
132
rule
@@ -186,7 +182,7 @@ module.exports = (api, options) => {
186
182
webpackConfig
187
183
. plugin ( 'optimize-css' )
188
184
. use ( require ( '@intervolga/optimize-cssnano-plugin' ) , [ {
189
- sourceMap : options . productionSourceMap && sourceMap ,
185
+ sourceMap : rootOptions . productionSourceMap && sourceMap ,
190
186
cssnanoOptions
191
187
} ] )
192
188
}
0 commit comments