npm ts-node 10.0.0

latest releases: 10.8.0, 10.7.0, 10.6.0...
12 months ago

Questions about this release? Ask in the official discussion thread: #1337

Breaking changes are prefixed with [BREAKING]


  • Adds --show-config to log the resolved configuration (docs) (#1100, #1243)
  • Bundle and re-export @tsconfig/node* configurations for convenience (docs) (#1202, #1236, #1313)
  • Default to appropriate @tsconfig/node* configuration based on node and typescript versions (docs) (#1202, #1236, #1313)
  • Automatically reference @types/node; use globally-installed @types/node if not locally installed (#1240, #1257)
  • Add swc integration and new --transpiler option to use third-party transpilers for a massive speed boost on large codebases (docs) (#779, #1160)
  • Add scopeDir API option (docs) (#1155)
  • Add projectSearchDir API option (docs) (#1155)
  • Add --cwd-mode and ts-node-cwd to resolve config file relative to cwd, not entrypoint script (#1155)


  • [BREAKING] Make --script-mode default behavior; resolve tsconfig relative to entrypoint script instead of cwd (#949, #1197, #1155)
    • In most cases this change will have no noticeable effect
    • Primarily benefits portable shell scripts on your $PATH, because ts-node will respect the script's local tsconfig.json
    • Use --cwd-mode or ts-node-cwd if you need legacy behavior
  • [BREAKING] ignore rules evaluate relative to tsconfig.json directory, otherwise cwd (#1155)
  • [BREAKING] Remove support for node 10. Minimum supported version is node 12 (#1312)
  • Rename --dir to --cwd; rename TS_NODE_DIR to TS_NODE_CWD (#1155)
    • --dir and TS_NODE_DIR are deprecated but still parsed for backwards-compatibility
    • --dir effectively changed the working directory of ts-node; renaming makes this behavior more obvious


  • Deprecate TS_NODE_SCOPE (#1155)
  • Deprecate --dir and TS_NODE_DIR (#1155)


  • [BREAKING] Internal APIs removed from type declarations (#1242)
    • Removed DEFAULTS, normalizeSlashes, parse, split
    • No features were removed
    • This will only affect consumers of ts-node's programmatic API


  • [BREAKING] Fix #1229 and #1235: always throw ERR_REQUIRE_ESM when attempting to execute ESM as CJS, even when not using --loader ts-node/esm (#1232)
    • This aligns our behavior with vanilla node
  • [BREAKING] Fix #1225: compiler is loaded relative to tsconfig.json instead of entrypoint script (#1155)
    • In most cases this change will have no noticable effect
  • Fix #1217: REPL not always using passed stdout and stderr (#1224)
  • Fix #1220: ts-node ./index may execute the wrong file extension because tsconfig search poisons the require.resolve cache (#1155)
  • Fix #1322: Sourcemaps fail for filenames with spaces or other characters which are percent-encoded in URLs (#1160, #1330)
  • Fix #1331: Resolution of node builtin modules in ESM loader fails on node >=12.20.0, <13 (#1332)


  • New documentation website:
    • README is generated to match the website
    • Added page explaining CommonJS vs ESM
    • Added page with Performance advice
    • Added Troubleshooting page
    • Organized and added to "Recipes" section with third-party tool integrations
    • Added TypeDoc-generated API docs
    • Work was spread across multiple tickets: #1207, #1213, #1221, #1228, #1244, #1250, #1294, #1295, #1296, #1297
    • Thanks to these contributors for PRs which improved our documentation
  • Added to document the codebase and our development workflow


Don't miss a new ts-node release

NewReleases is sending notifications on new releases.