@@ -12,18 +12,20 @@ export default class LintDirtyModulesPlugin {
12
12
}
13
13
14
14
apply ( compilation , callback ) {
15
+ const fileTimestamps = compilation . fileTimestamps || new Map ( ) ;
16
+
15
17
if ( this . isFirstRun ) {
16
18
this . isFirstRun = false ;
17
- this . prevTimestamps = compilation . fileTimestamps ;
19
+ this . prevTimestamps = fileTimestamps ;
18
20
callback ( ) ;
19
21
return ;
20
22
}
21
23
22
24
const dirtyOptions = { ...this . options } ;
23
25
const glob = dirtyOptions . files . join ( '|' ) . replace ( / \\ / g, '/' ) ;
24
- const changedFiles = this . getChangedFiles ( compilation . fileTimestamps , glob ) ;
26
+ const changedFiles = this . getChangedFiles ( fileTimestamps , glob ) ;
25
27
26
- this . prevTimestamps = compilation . fileTimestamps ;
28
+ this . prevTimestamps = fileTimestamps ;
27
29
28
30
if ( changedFiles . length ) {
29
31
dirtyOptions . files = changedFiles ;
@@ -34,8 +36,15 @@ export default class LintDirtyModulesPlugin {
34
36
}
35
37
36
38
getChangedFiles ( fileTimestamps , glob ) {
37
- const hasFileChanged = ( filename , timestamp ) => {
38
- const prevTimestamp = this . prevTimestamps . get ( filename ) ;
39
+ const getTimestamps = ( fileSystemInfoEntry ) => {
40
+ return fileSystemInfoEntry && fileSystemInfoEntry . timestamp
41
+ ? fileSystemInfoEntry . timestamp
42
+ : fileSystemInfoEntry ;
43
+ } ;
44
+
45
+ const hasFileChanged = ( filename , fileSystemInfoEntry ) => {
46
+ const prevTimestamp = getTimestamps ( this . prevTimestamps . get ( filename ) ) ;
47
+ const timestamp = getTimestamps ( fileSystemInfoEntry ) ;
39
48
40
49
return ( prevTimestamp || this . startTime ) < ( timestamp || Infinity ) ;
41
50
} ;
0 commit comments