@@ -84,6 +84,7 @@ export interface ProcessEnv {
84
84
TS_NODE_SKIP_PROJECT ?: string ;
85
85
TS_NODE_SKIP_IGNORE ?: string ;
86
86
TS_NODE_PREFER_TS_EXTS ?: string ;
87
+ TS_NODE_TRY_TS_EXT ?: string ;
87
88
TS_NODE_IGNORE_DIAGNOSTICS ?: string ;
88
89
TS_NODE_TRANSPILE_ONLY ?: string ;
89
90
TS_NODE_TYPE_CHECK ?: string ;
@@ -280,6 +281,13 @@ export interface RegisterOptions extends CreateOptions {
280
281
* @default false
281
282
*/
282
283
preferTsExts ?: boolean ;
284
+
285
+ /**
286
+ * Attempt to resolve the typescript file when the js file cannot be found.
287
+ *
288
+ * @default false
289
+ */
290
+ tryTsExt ?: boolean
283
291
}
284
292
285
293
/**
@@ -327,6 +335,7 @@ export const DEFAULTS: RegisterOptions = {
327
335
skipProject : yn ( env . TS_NODE_SKIP_PROJECT ) ,
328
336
skipIgnore : yn ( env . TS_NODE_SKIP_IGNORE ) ,
329
337
preferTsExts : yn ( env . TS_NODE_PREFER_TS_EXTS ) ,
338
+ tryTsExt : yn ( env . TS_NODE_ESM_COMPAT ) ,
330
339
ignoreDiagnostics : split ( env . TS_NODE_IGNORE_DIAGNOSTICS ) ,
331
340
transpileOnly : yn ( env . TS_NODE_TRANSPILE_ONLY ) ,
332
341
typeCheck : yn ( env . TS_NODE_TYPE_CHECK ) ,
@@ -441,7 +450,9 @@ export function register(opts: RegisterOptions = {}): Service {
441
450
originalJsHandler
442
451
) ;
443
452
444
- patchResolveFileName ( ) ;
453
+ if ( service . options . tryTsExt ) {
454
+ patchResolveFileName ( ) ;
455
+ }
445
456
446
457
// Require specified modules before start-up.
447
458
( Module as any ) . _preloadModules ( service . options . require ) ;
0 commit comments