Specify a custom TypeScript compiler.
Use TypeScript's compiler host API instead of the language service API.
JSON object to merge with TypeScript compilerOptions
.
Emit output files into .ts-node
directory.
Enable native ESM support.
Allows the usage of top level await in REPL.
Uses node's implementation which accomplishes this with an AST syntax transformation.
Enabled by default when tsconfig target is es2018 or above. Set to false to disable.
Note: setting to true
when tsconfig target is too low will throw an Error. Leave as undefined
to get default, automatic behavior.
Enable experimental features that re-map imports and require calls to support:
baseUrl
, paths
, rootDirs
, .js
to .ts
file extension mappings,
outDir
to rootDir
mappings for composite projects and monorepos.
For details, see https://github.com/TypeStrong/ts-node/issues/1514
Like node's --experimental-specifier-resolution
, , but can also be set in your tsconfig.json
for convenience.
Allow using voluntary .ts
file extension in import specifiers.
Typically, in ESM projects, import specifiers must have an emit extension, .js
, .cjs
, or .mjs
,
and we automatically map to the corresponding .ts
, .cts
, or .mts
source file. This is the
recommended approach.
However, if you really want to use .ts
in import specifiers, and are aware that this may
break tooling, you can enable this flag.
Load "files" and "include" from tsconfig.json
on startup.
Default is to override tsconfig.json
"files" and "include" to only include the entrypoint script.
Paths which should not be compiled.
Each string in the array is converted to a regular expression via new RegExp()
and tested against source paths prior to compilation.
Source paths are normalized to posix-style separators, relative to the directory containing tsconfig.json
or to cwd if no tsconfig.json
is loaded.
Default is to ignore all node_modules subdirectories.
Ignore TypeScript warnings by diagnostic code.
Logs TypeScript errors to stderr instead of throwing exceptions.
Override certain paths to be compiled and executed as CommonJS or ECMAScript modules. When overridden, the tsconfig "module" and package.json "type" fields are overridden, and the file extension is ignored. This is useful if you cannot use .mts, .cts, .mjs, or .cjs file extensions; it achieves the same effect.
Each key is a glob pattern following the same rules as tsconfig's "include" array. When multiple patterns match the same file, the last pattern takes precedence.
cjs
overrides matches files to compile and execute as CommonJS.
esm
overrides matches files to compile and execute as native ECMAScript modules.
package
overrides either of the above to default behavior, which obeys package.json "type" and
tsconfig.json "module" options.
Re-order file extensions so that TypeScript imports are preferred.
For example, when both index.js
and index.ts
exist, enabling this option causes require('./index')
to resolve to index.ts
instead of index.js
Use pretty diagnostic formatter.
Modules to require, like node's --require
flag.
If specified in tsconfig.json
, the modules will be resolved relative to the tsconfig.json
file.
If specified programmatically, each input string should be pre-resolved to an absolute path for best results.
Scope compiler to files within scopeDir
.
Skip ignore check, so that compilation will be attempted for all files with matching extensions.
Transpile with swc instead of the TypeScript compiler, and skip typechecking.
Equivalent to setting both transpileOnly: true
and transpiler: 'ts-node/transpilers/swc'
For complete instructions: https://typestrong.org/ts-node/docs/transpilers
Use TypeScript's faster transpileModule
.
Specify a custom transpiler for use with transpileOnly
DEPRECATED Specify type-check is enabled (e.g. transpileOnly == false
).
Generated using TypeDoc
Must be an interface to support
typescript-json-schema
.