@@ -21,6 +21,7 @@ interface BreezrStyleOptions {
21
21
sourceMap ?: boolean ;
22
22
hasPostCSSConfig ?: boolean ;
23
23
postCssPlugins ?: any ;
24
+ exclude ?: any ;
24
25
}
25
26
26
27
function applyCssLoaders ( rule : Chain . Rule , options : BreezrStyleOptions ) {
@@ -30,6 +31,7 @@ function applyCssLoaders(rule: Chain.Rule, options: BreezrStyleOptions) {
30
31
modules = false ,
31
32
sourceMap = false ,
32
33
postCssPlugins = [ ] ,
34
+ exclude,
33
35
} = options ;
34
36
35
37
const disableExtractText = typeof options . disableExtractText === 'boolean'
@@ -40,6 +42,10 @@ function applyCssLoaders(rule: Chain.Rule, options: BreezrStyleOptions) {
40
42
// 使用 mini-css-extract-plugin 作为更好的代替方案进行 css 的抽取
41
43
const styleLoaderOptions = { } ;
42
44
45
+ if ( exclude ) {
46
+ rule . exclude . add ( exclude ) ;
47
+ }
48
+
43
49
if ( ! disableExtractText ) {
44
50
rule
45
51
. use ( 'extract-css-loader' )
@@ -97,7 +103,8 @@ function applyCssLoaders(rule: Chain.Rule, options: BreezrStyleOptions) {
97
103
98
104
function createRules ( config : Chain , { lang, test } : {
99
105
lang : string ,
100
- test : webpack . Condition
106
+ test : webpack . Condition ,
107
+ exclude ?: webpack . Condition
101
108
} ) {
102
109
return config . module . rule ( lang ) . test ( test ) ;
103
110
}
@@ -121,9 +128,9 @@ module.exports = (api: PluginAPI, options: any) => {
121
128
disableExtractText : options . disableExtractText ,
122
129
} ;
123
130
124
- createCssRules ( 'sass' , { test : / \. s a s s $ / } , loaderOption ) ;
131
+ createCssRules ( 'sass' , { test : / \. s a s s $ / } , { ... loaderOption , exclude : / \. ( m o d u l e | s c o p e d ) \. s a s s $ / } ) ;
125
132
createCssRules ( 'sass-scoped' , { test : / \. ( m o d u l e | s c o p e d ) \. s a s s $ / } , { ...loaderOption , modules : true } ) ;
126
- createCssRules ( 'scss' , { test : / \. s c s s $ / } , loaderOption ) ;
133
+ createCssRules ( 'scss' , { test : / \. s c s s $ / } , { ... loaderOption , exclude : / \. ( m o d u l e | s c o p e d ) \. s c s s $ / } ) ;
127
134
createCssRules ( 'scss-scoped' , { test : / \. ( m o d u l e | s c o p e d ) \. s c s s $ / } , { ...loaderOption , modules : true } ) ;
128
135
} ) ;
129
136
} ;
0 commit comments