@@ -36,10 +36,29 @@ class StylelintWebpackPlugin {
36
36
// this differentiates one from the other when being cached.
37
37
this . key = compiler . name || `${ this . key } _${ ( counter += 1 ) } ` ;
38
38
39
+ const context = this . getContext ( compiler ) ;
40
+ const excludeDefault = [
41
+ '**/node_modules/**' ,
42
+ String ( compiler . options . output . path ) ,
43
+ ] ;
44
+
45
+ const options = {
46
+ ...this . options ,
47
+ context,
48
+ exclude : parseFiles ( this . options . exclude || excludeDefault , context ) ,
49
+ extensions : arrify ( this . options . extensions ) ,
50
+ files : parseFiles ( this . options . files || '' , context ) ,
51
+ } ;
52
+
53
+ const wanted = parseFoldersToGlobs ( options . files , options . extensions ) ;
54
+ const exclude = parseFoldersToGlobs ( options . exclude ) ;
55
+
39
56
// If `lintDirtyModulesOnly` is disabled,
40
57
// execute the linter on the build
41
58
if ( ! this . options . lintDirtyModulesOnly ) {
42
- compiler . hooks . run . tapPromise ( this . key , this . run ) ;
59
+ compiler . hooks . run . tapPromise ( this . key , ( c ) =>
60
+ this . run ( c , options , wanted , exclude )
61
+ ) ;
43
62
}
44
63
45
64
let isFirstRun = this . options . lintDirtyModulesOnly ;
@@ -50,14 +69,17 @@ class StylelintWebpackPlugin {
50
69
return Promise . resolve ( ) ;
51
70
}
52
71
53
- return this . run ( c ) ;
72
+ return this . run ( c , options , wanted , exclude ) ;
54
73
} ) ;
55
74
}
56
75
57
76
/**
58
77
* @param {Compiler } compiler
78
+ * @param {Options } options
79
+ * @param {string[] } wanted
80
+ * @param {string[] } exclude
59
81
*/
60
- async run ( compiler ) {
82
+ async run ( compiler , options , wanted , exclude ) {
61
83
// Do not re-hook
62
84
/* istanbul ignore if */
63
85
if (
@@ -67,22 +89,6 @@ class StylelintWebpackPlugin {
67
89
return ;
68
90
}
69
91
70
- const context = this . getContext ( compiler ) ;
71
- const excludeDefault = [
72
- '**/node_modules/**' ,
73
- String ( compiler . options . output . path ) ,
74
- ] ;
75
-
76
- const options = {
77
- ...this . options ,
78
- exclude : parseFiles ( this . options . exclude || excludeDefault , context ) ,
79
- extensions : arrify ( this . options . extensions ) ,
80
- files : parseFiles ( this . options . files || '' , context ) ,
81
- } ;
82
-
83
- const wanted = parseFoldersToGlobs ( options . files , options . extensions ) ;
84
- const exclude = parseFoldersToGlobs ( options . exclude ) ;
85
-
86
92
compiler . hooks . thisCompilation . tap ( this . key , ( compilation ) => {
87
93
/** @type {import('./linter').Linter } */
88
94
let lint ;
@@ -131,10 +137,10 @@ class StylelintWebpackPlugin {
131
137
132
138
if ( threads > 1 ) {
133
139
for ( const file of files ) {
134
- lint ( parseFiles ( file , context ) ) ;
140
+ lint ( parseFiles ( file , options . context || '' ) ) ;
135
141
}
136
142
} else if ( files . length > 0 ) {
137
- lint ( parseFiles ( files , context ) ) ;
143
+ lint ( parseFiles ( files , options . context || '' ) ) ;
138
144
}
139
145
} ) ;
140
146
0 commit comments