Options
All command-line flags support both --camelCase
and --hyphen-case
.
Most options can be declared in your tsconfig.json: Configuration via tsconfig.json
ts-node
supports --print
(-p
), --eval
(-e
), --require
(-r
) and --interactive
(-i
) similar to the node.js CLI.
ts-node
supports --project
and --showConfig
similar to the tsc CLI.
Environment variables, where available, are in ALL_CAPS
CLI Options
help
shell
ts-node --help
shell
ts-node --help
Prints the help text
version
shell
ts-node -vts-node -vvv
shell
ts-node -vts-node -vvv
Prints the version. -vv
includes node and typescript compiler versions. -vvv
includes absolute paths to ts-node and
typescript installations.
eval
shell
ts-node -e <typescript code># Examplets-node -e 'console.log("Hello world!")'
shell
ts-node -e <typescript code># Examplets-node -e 'console.log("Hello world!")'
Evaluate code
print
shell
ts-node -p -e <typescript code># Examplets-node -p -e '"Hello world!"'
shell
ts-node -p -e <typescript code># Examplets-node -p -e '"Hello world!"'
Print result of --eval
interactive
shell
ts-node -i
shell
ts-node -i
Opens the REPL even if stdin does not appear to be a terminal
esm
shell
ts-node --esmts-node-esm
shell
ts-node --esmts-node-esm
Bootstrap with the ESM loader, enabling full ESM support
TSConfig Options
project
shell
ts-node -P <path/to/tsconfig>ts-node --project <path/to/tsconfig>
shell
ts-node -P <path/to/tsconfig>ts-node --project <path/to/tsconfig>
Path to tsconfig file.
Note the uppercase -P
. This is different from tsc
's -p/--project
option.
Environment: TS_NODE_PROJECT
skipProject
shell
ts-node --skipProject
shell
ts-node --skipProject
Skip project config resolution and loading
Default: false
Environment: TS_NODE_SKIP_PROJECT
cwdMode
shell
ts-node -cts-node --cwdModets-node-cwd
shell
ts-node -cts-node --cwdModets-node-cwd
Resolve config relative to the current directory instead of the directory of the entrypoint script
compilerOptions
shell
ts-node -O <json compilerOptions>ts-node --compilerOptions <json compilerOptions>
shell
ts-node -O <json compilerOptions>ts-node --compilerOptions <json compilerOptions>
JSON object to merge with compiler options
Environment: TS_NODE_COMPILER_OPTIONS
showConfig
shell
ts-node --showConfig
shell
ts-node --showConfig
Print resolved tsconfig.json
, including ts-node
options, and exit
Typechecking
transpileOnly
shell
ts-node -Tts-node --transpileOnly
shell
ts-node -Tts-node --transpileOnly
Use TypeScript's faster transpileModule
Default: false
Environment: TS_NODE_TRANSPILE_ONLY
typeCheck
shell
ts-node --typeCheck
shell
ts-node --typeCheck
Opposite of --transpileOnly
Default: true
Environment: TS_NODE_TYPE_CHECK
compilerHost
shell
ts-node -Hts-node --compilerHost
shell
ts-node -Hts-node --compilerHost
Use TypeScript's compiler host API
Default: false
Environment: TS_NODE_COMPILER_HOST
files
shell
ts-node --files
shell
ts-node --files
Load files
, include
and exclude
from tsconfig.json
on startup. This may
avoid certain typechecking failures. See Missing types for details.
Default: false
Environment: TS_NODE_FILES
ignoreDiagnostics
shell
ts-node -D <code,code>ts-node --ignoreDiagnostics <code,code>
shell
ts-node -D <code,code>ts-node --ignoreDiagnostics <code,code>
Ignore TypeScript warnings by diagnostic code
Environment: TS_NODE_IGNORE_DIAGNOSTICS
Transpilation Options
ignore
shell
ts-node -I <regexp matching ignored files>ts-node --ignore <regexp matching ignored files>
shell
ts-node -I <regexp matching ignored files>ts-node --ignore <regexp matching ignored files>
Override the path patterns to skip compilation
Default: /node_modules/
Environment: TS_NODE_IGNORE
skipIgnore
shell
ts-node --skipIgnore
shell
ts-node --skipIgnore
Skip ignore checks
Default: false
Environment: TS_NODE_SKIP_IGNORE
compiler
shell
ts-node -C <name>ts-node --compiler <name>
shell
ts-node -C <name>ts-node --compiler <name>
Specify a custom TypeScript compiler
Default: typescript
Environment: TS_NODE_COMPILER
swc
shell
ts-node --swc
shell
ts-node --swc
Transpile with swc. Implies --transpileOnly
Default: false
transpiler
shell
ts-node --transpiler <name># Examplets-node --transpiler ts-node/transpilers/swc
shell
ts-node --transpiler <name># Examplets-node --transpiler ts-node/transpilers/swc
Use a third-party, non-typechecking transpiler
preferTsExts
shell
ts-node --preferTsExts
shell
ts-node --preferTsExts
Re-order file extensions so that TypeScript imports are preferred
Default: false
Environment: TS_NODE_PREFER_TS_EXTS
Diagnostic Options
logError
shell
ts-node --logError
shell
ts-node --logError
Logs TypeScript errors to stderr instead of throwing exceptions
Default: false
Environment: TS_NODE_LOG_ERROR
pretty
shell
ts-node --pretty
shell
ts-node --pretty
Use pretty diagnostic formatter
Default: false
Environment: TS_NODE_PRETTY
TS_NODE_DEBUG
shell
TS_NODE_DEBUG=true ts-node
shell
TS_NODE_DEBUG=true ts-node
Enable debug logging
Advanced Options
require
shell
ts-node -r <module name or path>ts-node --require <module name or path>
shell
ts-node -r <module name or path>ts-node --require <module name or path>
Require a node module before execution
cwd
shell
ts-node --cwd <path/to/directory>
shell
ts-node --cwd <path/to/directory>
Behave as if invoked in this working directory
Default: process.cwd()
Environment: TS_NODE_CWD
emit
shell
ts-node --emit
shell
ts-node --emit
Emit output files into .ts-node
directory. Requires --compilerHost
Default: false
Environment: TS_NODE_EMIT
scope
shell
ts-node --scope
shell
ts-node --scope
Scope compiler to files within scopeDir
. Anything outside this directory is ignored.
Default: false
Environment: TS_NODE_SCOPE
scopeDir
shell
ts-node --scopeDir <path/to/directory>
shell
ts-node --scopeDir <path/to/directory>
Directory within which compiler is limited when scope
is enabled.
Default: First of: tsconfig.json
"rootDir" if specified, directory containing tsconfig.json
, or cwd if no tsconfig.json
is loaded.
Environment: TS_NODE_SCOPE_DIR
moduleTypes
Override the module type of certain files, ignoring the package.json
"type"
field. See Module type overrides for details.
Default: obeys package.json
"type"
and tsconfig.json
"module"
Can only be specified via tsconfig.json
or API.
TS_NODE_HISTORY
shell
TS_NODE_HISTORY=<path/to/history/file> ts-node
shell
TS_NODE_HISTORY=<path/to/history/file> ts-node
Path to history file for REPL
Default: ~/.ts_node_repl_history
noExperimentalReplAwait
shell
ts-node --noExperimentalReplAwait
shell
ts-node --noExperimentalReplAwait
Disable top-level await in REPL. Equivalent to node's --no-experimental-repl-await
Default: Enabled if TypeScript version is 3.8 or higher and target is ES2018 or higher.
Environment: TS_NODE_EXPERIMENTAL_REPL_AWAIT
set false
to disable
experimentalResolver
Enable experimental hooks that re-map imports and require calls to support:
- remapping extensions, e.g. so that
import "./foo.js"
will executefoo.ts
. Currently the following extensions will be mapped:.js
to.ts
,.tsx
, or.jsx
.cjs
to.cts
.mjs
to.mts
.jsx
to.tsx
- including file extensions in CommonJS, for consistency with ESM where this is often mandatory
In the future, this hook will also support:
baseUrl
,paths
rootDirs
outDir
torootDir
mappings for composite projects and monorepos
For details, see #1514.
Default: false
, but will likely be enabled by default in a future version
Can only be specified via tsconfig.json
or API.
experimentalSpecifierResolution
shell
ts-node --experimentalSpecifierResolution node
shell
ts-node --experimentalSpecifierResolution node
Like node's --experimental-specifier-resolution
, but can also be set in your tsconfig.json
for convenience.
Requires esm
to be enabled.
Default: explicit
API Options
The API includes additional options not shown here.