This project has been merged with tsx and this repository is no longer maintained.
Use tsx instead:
node --require tsx/cjs ./file.ts
Node.js require() hook for loading ESM & TypeScript.
- Transforms ESM & TypeScript to CommonJS on demand
- Supports TS extensions
.cjs&.mjs(.cts&.mts) - Cached for performance boost
- Supports Node.js v12.16.2+
- Handles
node:import prefixes - Resolves
tsconfig.jsonpaths
Protip: use with esm-loader or tsx
cjs-loader only transforms CommonJS modules (
.cjs/.ctsor.jsfiles incommonjstype packages).To hook into
import()calls or ES modules (.mjs/.mtsextensions or.jsfiles inmoduletype packages), use this with esm-loader.Alternatively, use tsx to handle them both automatically.
npm install --save-dev @esbuild-kit/cjs-loaderPass @esbuild-kit/cjs-loader into the --require flag
node -r @esbuild-kit/cjs-loader ./file.jsThe following properties are used from tsconfig.json in the working directory:
strict: Whether to transform to strict modejsx: Whether to transform JSXWarning: When set to
preserve, the JSX syntax will remain untransformed. To prevent Node.js from throwing a syntax error, chain another Node.js loader that can transform JSX to JS.jsxFactory: How to transform JSXjsxFragmentFactory: How to transform JSX FragmentsjsxImportSource: Where to import JSX functions fromallowJs: Whether to apply the tsconfig to JS filespaths: For resolving aliases
By default, tsconfig.json will be detected from the current working directory.
To set a custom path, use the ESBK_TSCONFIG_PATH environment variable:
ESBK_TSCONFIG_PATH=./path/to/tsconfig.custom.json node -r @esbuild-kit/cjs-loader ./file.jsModules transformations are cached in the system cache directory (TMPDIR). Transforms are cached by content hash so duplicate dependencies are not re-transformed.
Set environment variable ESBK_DISABLE_CACHE to a truthy value to disable the cache:
ESBK_DISABLE_CACHE=1 node -r @esbuild-kit/cjs-loader ./file.js-
tsx - Node.js runtime powered by esbuild using
@esbuild-kit/cjs-loaderand@esbuild-kit/esm-loader. -
@esbuild-kit/esm-loader - TypeScript to ESM transpiler using the Node.js loader API.