@@ -47,6 +47,7 @@ let preparationDone = false
47
47
const importList = new Map ( )
48
48
const exportList = new Map ( )
49
49
const ignoredFiles = new Set ( )
50
+ const filesOutsideSrc = new Set ( )
50
51
51
52
const isNodeModule = path => {
52
53
return / \/ ( n o d e _ m o d u l e s ) \/ / . test ( path )
@@ -192,8 +193,9 @@ const getSrc = src => {
192
193
* prepare the lists of existing imports and exports - should only be executed once at
193
194
* the start of a new eslint run
194
195
*/
196
+ let srcFiles
195
197
const doPreparation = ( src , ignoreExports , context ) => {
196
- const srcFiles = resolveFiles ( getSrc ( src ) , ignoreExports )
198
+ srcFiles = resolveFiles ( getSrc ( src ) , ignoreExports )
197
199
prepareImportsAndExports ( srcFiles , context )
198
200
determineUsage ( )
199
201
preparationDone = true
@@ -375,12 +377,17 @@ module.exports = {
375
377
return
376
378
}
377
379
378
- // refresh list of source files
379
- const srcFiles = resolveFiles ( getSrc ( src ) , ignoreExports )
380
+ if ( filesOutsideSrc . has ( file ) ) {
381
+ return
382
+ }
380
383
381
384
// make sure file to be linted is included in source files
382
385
if ( ! srcFiles . has ( file ) ) {
383
- return
386
+ srcFiles = resolveFiles ( getSrc ( src ) , ignoreExports )
387
+ if ( ! srcFiles . has ( file ) ) {
388
+ filesOutsideSrc . add ( file )
389
+ return
390
+ }
384
391
}
385
392
386
393
exports = exportList . get ( file )
0 commit comments