Just-in-Time Typescript and ESM support for Node.js.
Important
This is the development branch for jiti v2. Check out jiti/v1 for latest stable docs and unjs/jiti#174 for the v2 roadmap.
- Seamless typescript and ESM syntax support
- Seamless interoperability between ESM and CommonJS
- Synchronous API to replace
require()
- Asynchronous API to replace
import()
- Super slim and zero dependency
- Smart syntax detection to avoid extra transforms
- Node.js native require cache integration
- Filesystem transpile with hard disk caches
- Custom resolve aliases
- Nitro and UnJS ecosystem
- Nuxt
- Docusaurus
- UnoCSS
- Tailwindcss 3.x
- PostCSS loader
- Slidev
- FormKit
- Knip
- Histoire
- ...55M+ npm monthly downloads
- ...5M+ public repositories
- [ add yours ]
const jiti = require("jiti")(__filename);
// CommonJS mode
jiti("./path/to/file.ts");
// ESM mode
await jiti.import("./path/to/file.ts");
You can also pass options as second argument:
const jiti = require("jiti")(__filename, { debug: true });
jiti index.ts
# or npx jiti index.ts
node -r jiti/register index.ts
Alternatively, you can register jiti
as a require hook programmatically:
const jiti = require("jiti")();
const unregister = jiti.register();
- Type: Boolean
- Default:
false
- Environment Variable:
JITI_DEBUG
Enable debug to see which files are transpiled
- Type: Boolean | String
- Default:
true
- Environment Variable:
JITI_CACHE
Use transpile cache
If set to true
will use node_modules/.cache/jiti
(if exists) or {TMP_DIR}/node-jiti
- Type: Function
- Default: Babel (lazy loaded)
Transform function. See src/babel for more details
- Type: Boolean
- Default
false
- Environment Variable:
JITI_SOURCE_MAPS
Add inline source map to transformed source for better debugging.
- Type: Boolean
- Default:
false
Return the .default
export of a module at the top-level.
- Type: Object
- Default: -
- Environment Variable:
JITI_ALIAS
Custom alias map used to resolve ids.
- Type: Array
- Default: ['typescript`]
- Environment Variable:
JITI_NATIVE_MODULES
List of modules (within node_modules
) to always use native require for them.
- Type: Array
- Default: []
- Environment Variable:
JITI_TRANSFORM_MODULES
List of modules (within node_modules
) to transform them regardless of syntax.
- Type: Boolean
- Default: Enabled if
process.versions.bun
exists (Bun runtime) - Environment Variable:
JITI_EXPERIMENTAL_BUN
Enable experimental native Bun support for transformations.
- Clone this repository
- Enable Corepack using
corepack enable
- Install dependencies using
pnpm install
- Run
pnpm dev
- Run
pnpm jiti ./test/path/to/file.ts
MIT. Made with 💖