jiti
Runtime typescript and ESM support for Node.js
Last updated a month ago by pi0 .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ npm install jiti 
SYNC missed versions from official npm registry.

jiti

npm version npm downloads bundle size

This is the active development branch. Check out jiti/v1 for legacy v1 docs and code.

🌟 Used in

Docusaurus, ESLint, FormKit, Histoire, Knip, Nitro, Nuxt, PostCSS loader, Rsbuild, Size Limit, Slidev, Tailwindcss, Tokenami, UnoCSS, WXT, Winglang, Graphql code generator, Lingui, Scaffdog, Storybook, ...UnJS ecosystem, ...60M+ npm monthly downloads, ...6M+ public repositories.

✅ Features

  • Seamless Typescript and ESM syntax support for Node.js
  • Seamless interoperability between ESM and CommonJS
  • Asynchronous API to replace import()
  • Synchronous API to replace require() (deprecated)
  • Super slim and zero dependency
  • Custom resolve aliases
  • Smart syntax detection to avoid extra transforms
  • Node.js native require cache integration
  • Filesystem transpile with hard disk caches
  • ESM Loader support
  • JSX support (opt-in)

💡 Usage

CLI

You can use jiti CLI to quickly run any script with Typescript and native ESM support!

npx jiti ./index.ts

Programmatic

Initialize a jiti instance:

// ESM
import { createJiti } from "jiti";
const jiti = createJiti(import.meta.url);

// CommonJS (deprecated)
const { createJiti } = require("jiti");
const jiti = createJiti(__filename);

Import (async) and resolve with ESM compatibility:

// jiti.import() acts like import() with Typescript support
await jiti.import("./path/to/file.ts");

// jiti.esmResolve() acts like import.meta.resolve() with additional features
const resolvedPath = jiti.esmResolve("./src");

CommonJS (sync & deprecated):

// jiti() acts like require() with Typescript and (non async) ESM support
jiti("./path/to/file.ts");

// jiti.resolve() acts like require.resolve() with additional features
const resolvedPath = jiti.resolve("./src");

You can also pass options as second argument:

const jiti = createJiti(import.meta.url, { debug: true });

Register global ESM loader

You can globally register jiti using global hooks. (important: Requires Node.js > 20)

import "jiti/register";

Or:

node --import jiti/register index.ts

🎈 jiti/native

You can alias jiti to jiti/native to directly depend on runtime's import.meta.resolve and dynamic import() support. This allows easing up the ecosystem transition to runtime native support by giving the same API of jiti.

⚙️ Options

debug

  • Type: Boolean
  • Default: false
  • Environment variable: JITI_DEBUG

Enable verbose logging. You can use JITI_DEBUG=1 <your command> to enable it.

fsCache

  • Type: Boolean | String
  • Default: true
  • Environment variable: JITI_FS_CACHE

Filesystem source cache (enabled by default)

By default (when is true), jiti uses node_modules/.cache/jiti (if exists) or {TMP_DIR}/jiti.

Note: It is recommended to keep this option enabled for better performance.

moduleCache

  • Type: String
  • Default: true
  • Environment variable: JITI_MODULE_CACHE

Runtime module cache (enabled by default).

Disabling allows editing code and importing the same module multiple times.

When enabled, jiti integrates with Node.js native CommonJS cache-store.

transform

  • Type: Function
  • Default: Babel (lazy loaded)

Transform function. See src/babel for more details

sourceMaps

  • Type: Boolean
  • Default false
  • Environment variable: JITI_SOURCE_MAPS

Add inline source map to transformed source for better debugging.

interopDefault

  • Type: Boolean
  • Default: true
  • Environment variable: JITI_INTEROP_DEFAULT

Uses the default export of modules (if exists), alongside any other named exports combined.

See mlly.interopDefault and the implementation for more info.

alias

  • Type: Object
  • Default: -
  • Environment variable: JITI_ALIAS

You can also pass an object to the environment variable for inline config. Example: JITI_ALIAS='{"~/*": "./src/*"}' jiti ....

Custom alias map used to resolve IDs.

nativeModules

  • Type: Array
  • Default: ['typescript`]
  • Environment variable: JITI_NATIVE_MODULES

List of modules (within node_modules) to always use native require() for them.

transformModules

  • Type: Array
  • Default: []
  • Environment variable: JITI_TRANSFORM_MODULES

List of modules (within node_modules) to transform them regardless of syntax.

importMeta

Parent module's import.meta context to use for ESM resolution. (only used for jiti/native import).

tryNative

  • Type: Boolean
  • Default: Enabled if bun is detected
  • Environment variable: JITI_TRY_NATIVE

Try to use native require and import without jiti transformations first.

jsx

  • Type: Boolean | {options}
  • Default: false
  • Environment Variable: JITI_JSX

Enable JSX support using @babel/plugin-transform-react-jsx.

See test/fixtures/jsx for framework integration examples.

Development

  • Clone this repository
  • Enable Corepack using corepack enable
  • Install dependencies using pnpm install
  • Run pnpm dev
  • Run pnpm jiti ./test/path/to/file.ts

License

Published under the MIT license. Made by @pi0 and community 💛

Current Tags

  • 2.0.0-rc.1                                ...           2x (2 months ago)
  • 2.3.3                                ...           latest (a month ago)

96 Versions

  • 2.3.3                                ...           a month ago
  • 2.3.2                                ...           a month ago
  • 2.3.1                                ...           a month ago
  • 2.3.0                                ...           a month ago
  • 2.2.1                                ...           a month ago
  • 2.2.0                                ...           a month ago
  • 2.1.2                                ...           a month ago
  • 2.1.1                                ...           a month ago
  • 2.1.0                                ...           a month ago
  • 2.0.0                                ...           2 months ago
  • 2.0.0-rc.1                                ...           2 months ago
  • 2.0.0-beta.3                                ...           4 months ago
  • 2.0.0-beta.2                                ...           4 months ago
  • 2.0.0-beta.1                                ...           5 months ago
  • 1.21.6                                ...           5 months ago
  • 1.21.5                                ...           5 months ago
  • 1.21.4                                ...           5 months ago
  • 1.21.3                                ...           5 months ago
  • 1.21.2                                ...           5 months ago
  • 1.21.1                                ...           5 months ago
  • 1.21.0                                ...           a year ago
  • 1.20.0                                ...           a year ago
  • 1.19.3                                ...           a year ago
  • 1.19.2                                ...           a year ago
  • 1.19.1                                ...           a year ago
  • 1.19.0 [deprecated]           ...           a year ago
  • 1.18.2                                ...           2 years ago
  • 1.18.1 [deprecated]           ...           2 years ago
  • 1.18.0 [deprecated]           ...           2 years ago
  • 1.17.2                                ...           2 years ago
  • 1.17.1                                ...           2 years ago
  • 1.17.0                                ...           2 years ago
  • 1.16.2                                ...           2 years ago
  • 1.16.1                                ...           2 years ago
  • 1.16.0                                ...           2 years ago
  • 1.15.0                                ...           2 years ago
  • 1.14.0                                ...           2 years ago
  • 1.13.0                                ...           3 years ago
  • 1.12.15                                ...           3 years ago
  • 1.12.14                                ...           3 years ago
  • 1.12.13                                ...           3 years ago
  • 1.12.12                                ...           3 years ago
  • 1.12.11                                ...           3 years ago
  • 1.12.10                                ...           3 years ago
  • 1.12.9                                ...           3 years ago
  • 1.12.8 [deprecated]           ...           3 years ago
  • 1.12.7                                ...           3 years ago
  • 1.12.6                                ...           3 years ago
  • 1.12.5                                ...           3 years ago
  • 1.12.4 [deprecated]           ...           3 years ago
  • 1.12.3                                ...           3 years ago
  • 1.12.2                                ...           3 years ago
  • 1.12.1                                ...           3 years ago
  • 1.12.0                                ...           3 years ago
  • 1.11.0                                ...           3 years ago
  • 1.10.1                                ...           3 years ago
  • 1.10.0                                ...           3 years ago
  • 1.9.2                                ...           4 years ago
  • 1.9.1                                ...           4 years ago
  • 1.9.0                                ...           4 years ago
  • 1.8.0                                ...           4 years ago
  • 1.7.0                                ...           4 years ago
  • 1.6.4                                ...           4 years ago
  • 1.6.3                                ...           4 years ago
  • 1.6.2                                ...           4 years ago
  • 1.6.1                                ...           4 years ago
  • 1.6.0                                ...           4 years ago
  • 1.5.0                                ...           4 years ago
  • 1.4.0                                ...           4 years ago
  • 1.3.0                                ...           4 years ago
  • 1.2.1                                ...           4 years ago
  • 1.2.0                                ...           4 years ago
  • 1.1.0                                ...           4 years ago
  • 1.0.0                                ...           4 years ago
  • 0.1.20                                ...           4 years ago
  • 0.1.19                                ...           4 years ago
  • 0.1.18                                ...           4 years ago
  • 0.1.17                                ...           4 years ago
  • 0.1.16                                ...           4 years ago
  • 0.1.15                                ...           4 years ago
  • 0.1.14                                ...           4 years ago
  • 0.1.13                                ...           4 years ago
  • 0.1.12                                ...           4 years ago
  • 0.1.11                                ...           4 years ago
  • 0.1.10                                ...           4 years ago
  • 0.1.9                                ...           4 years ago
  • 0.1.8                                ...           4 years ago
  • 0.1.7                                ...           4 years ago
  • 0.1.6                                ...           4 years ago
  • 0.1.5                                ...           4 years ago
  • 0.1.4                                ...           4 years ago
  • 0.1.3                                ...           4 years ago
  • 0.1.2                                ...           4 years ago
  • 0.1.1                                ...           4 years ago
  • 0.1.0                                ...           4 years ago
  • 0.0.0                                ...           4 years ago
Maintainers (1)
Downloads
Total 1
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (60)

© 2010 - cnpmjs.org x YWFE | Home | YWFE