@@ -1717,6 +1717,7 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro
17171717 let projectReferenceRedirects : Map < Path , ResolvedProjectReference | false > | undefined ;
17181718 let mapFromFileToProjectReferenceRedirects : Map < Path , Path > | undefined ;
17191719 let mapFromToProjectReferenceRedirectSource : Map < Path , SourceOfProjectReferenceRedirect > | undefined ;
1720+ let hasResolvedReferencencesInNodeModules = false ;
17201721
17211722 const useSourceOfProjectReferenceRedirect = ! ! host . useSourceOfProjectReferenceRedirect ?.( ) &&
17221723 ! options . disableSourceOfProjectReferenceRedirect ;
@@ -3823,6 +3824,7 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro
38233824
38243825 function getSourceOfProjectReferenceRedirect ( path : Path ) {
38253826 if ( ! isDeclarationFileName ( path ) ) return undefined ;
3827+ if ( ! hasResolvedReferencencesInNodeModules && pathContainsNodeModules ( path ) ) return undefined ;
38263828 if ( mapFromToProjectReferenceRedirectSource === undefined ) {
38273829 mapFromToProjectReferenceRedirectSource = new Map ( ) ;
38283830 forEachResolvedProjectReference ( resolvedRef => {
@@ -4140,6 +4142,9 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro
41404142 sourceFile . path = sourceFilePath ;
41414143 sourceFile . resolvedPath = sourceFilePath ;
41424144 sourceFile . originalFileName = refPath ;
4145+ if ( ! hasResolvedReferencencesInNodeModules && ( pathContainsNodeModules ( sourceFile . resolvedPath ) || pathContainsNodeModules ( sourceFile . path ) ) ) {
4146+ hasResolvedReferencencesInNodeModules = true ;
4147+ }
41434148
41444149 const resolvedRef : ResolvedProjectReference = { commandLine, sourceFile } ;
41454150 projectReferenceRedirects . set ( sourceFilePath , resolvedRef ) ;
0 commit comments