File tree Expand file tree Collapse file tree 1 file changed +24
-17
lines changed Expand file tree Collapse file tree 1 file changed +24
-17
lines changed Original file line number Diff line number Diff line change @@ -137,23 +137,30 @@ export function createResolverFunctions(kwargs: {
137137 ) ;
138138 if ( typeDirectiveName === 'node' && ! resolvedTypeReferenceDirective ) {
139139 // Resolve @types /node relative to project first, then __dirname (copy logic from elsewhere / refactor into reusable function)
140- const typesNodePackageJsonPath = require . resolve (
141- '@types/node/package.json' ,
142- {
143- paths : [ configFilePath ?? cwd , __dirname ] ,
144- }
145- ) ;
146- const typeRoots = [ resolve ( typesNodePackageJsonPath , '../..' ) ] ;
147- ( { resolvedTypeReferenceDirective } = ts . resolveTypeReferenceDirective (
148- typeDirectiveName ,
149- containingFile ,
150- {
151- ...config . options ,
152- typeRoots,
153- } ,
154- serviceHost ,
155- redirectedReference
156- ) ) ;
140+ let typesNodePackageJsonPath : string | undefined ;
141+ try {
142+ typesNodePackageJsonPath = require . resolve (
143+ '@types/node/package.json' ,
144+ {
145+ paths : [ configFilePath ?? cwd , __dirname ] ,
146+ }
147+ ) ;
148+ } catch { } // gracefully do nothing when @types /node is not installed for any reason
149+ if ( typesNodePackageJsonPath ) {
150+ const typeRoots = [ resolve ( typesNodePackageJsonPath , '../..' ) ] ;
151+ ( {
152+ resolvedTypeReferenceDirective,
153+ } = ts . resolveTypeReferenceDirective (
154+ typeDirectiveName ,
155+ containingFile ,
156+ {
157+ ...config . options ,
158+ typeRoots,
159+ } ,
160+ serviceHost ,
161+ redirectedReference
162+ ) ) ;
163+ }
157164 }
158165 if ( resolvedTypeReferenceDirective ) {
159166 fixupResolvedModule ( resolvedTypeReferenceDirective ) ;
You can’t perform that action at this time.
0 commit comments