@@ -475,9 +475,10 @@ func (r *resolutionState) resolveNodeLikeWorker() *ResolvedModule {
475475 } else {
476476 candidate := normalizePathForCJSResolution (r .containingDirectory , r .name )
477477 resolved := r .nodeLoadModuleByRelativeName (r .extensions , candidate , false , true )
478+
478479 return r .createResolvedModule (
479480 resolved ,
480- resolved != nil && ( tspath . IsExternalLibraryImport (resolved . path ) ),
481+ r . isExternalLibraryImport (resolved ),
481482 )
482483 }
483484 return r .createResolvedModule (nil , false )
@@ -1089,7 +1090,8 @@ func (r *resolutionState) loadModuleFromSpecificNodeModulesDirectoryImpl(ext ext
10891090}
10901091
10911092func (r * resolutionState ) createResolvedModuleHandlingSymlink (resolved * resolved ) * ResolvedModule {
1092- isExternalLibraryImport := resolved != nil && (tspath .IsExternalLibraryImport (resolved .path ))
1093+ isExternalLibraryImport := r .isExternalLibraryImport (resolved )
1094+
10931095 if r .compilerOptions .PreserveSymlinks != core .TSTrue &&
10941096 isExternalLibraryImport &&
10951097 resolved .originalPath == "" &&
@@ -1137,7 +1139,8 @@ func (r *resolutionState) createResolvedTypeReferenceDirective(resolved *resolve
11371139 resolvedTypeReferenceDirective .ResolvedFileName = resolved .path
11381140 resolvedTypeReferenceDirective .Primary = primary
11391141 resolvedTypeReferenceDirective .PackageId = resolved .packageId
1140- resolvedTypeReferenceDirective .IsExternalLibraryImport = tspath .IsExternalLibraryImport (resolved .path )
1142+
1143+ resolvedTypeReferenceDirective .IsExternalLibraryImport = r .isExternalLibraryImport (resolved )
11411144
11421145 if r .compilerOptions .PreserveSymlinks != core .TSTrue {
11431146 originalPath , resolvedFileName := r .getOriginalAndResolvedFileName (resolved .path )
@@ -1885,6 +1888,21 @@ func (r *resolutionState) conditionMatches(condition string) bool {
18851888 return false
18861889}
18871890
1891+ func (r * resolutionState ) isExternalLibraryImport (resolved * resolved ) bool {
1892+ if resolved == nil {
1893+ return false
1894+ }
1895+
1896+ isExternalLibraryImport := strings .Contains (resolved .path , "/node_modules/" )
1897+
1898+ pnpApi := r .resolver .host .PnpApi ()
1899+ if pnpApi != nil && ! isExternalLibraryImport {
1900+ isExternalLibraryImport = pnpApi .IsInPnpModule (resolved .path , r .containingDirectory )
1901+ }
1902+
1903+ return isExternalLibraryImport
1904+ }
1905+
18881906func (r * resolutionState ) getTraceFunc () func (string ) {
18891907 if r .tracer != nil {
18901908 return r .tracer .write
0 commit comments