Spaces:
Sleeping
Sleeping
| # jiti | |
| [![npm version][npm-version-src]][npm-version-href] | |
| [![npm downloads][npm-downloads-src]][npm-downloads-href] | |
| [![bundle][bundle-src]][bundle-href] | |
| [![License][license-src]][license-href] | |
| Runtime Typescript and ESM support for Node.js. | |
| > [!IMPORTANT] | |
| > This is the support branch for jiti v1. Check out [jiti/main](https://github.com/unjs/jiti/tree/main) for the latest version and [unjs/jiti#174](https://github.com/unjs/jiti/issues/174) for the roadmap. | |
| ## Features | |
| - Seamless typescript and ESM syntax support | |
| - Seamless interoperability between ESM and CommonJS | |
| - Synchronous API to replace `require` | |
| - Super slim and zero dependency | |
| - Smart syntax detection to avoid extra transforms | |
| - CommonJS cache integration | |
| - Filesystem transpile hard cache | |
| - V8 compile cache | |
| - Custom resolve alias | |
| ## Usage | |
| ### Programmatic | |
| ```js | |
| const jiti = require("jiti")(__filename); | |
| jiti("./path/to/file.ts"); | |
| ``` | |
| You can also pass options as second argument: | |
| ```js | |
| const jiti = require("jiti")(__filename, { debug: true }); | |
| ``` | |
| ### CLI | |
| ```bash | |
| jiti index.ts | |
| # or npx jiti index.ts | |
| ``` | |
| ### Register require hook | |
| ```bash | |
| node -r jiti/register index.ts | |
| ``` | |
| Alternatively, you can register `jiti` as a require hook programmatically: | |
| ```js | |
| const jiti = require("jiti")(); | |
| const unregister = jiti.register(); | |
| ``` | |
| ## Options | |
| ### `debug` | |
| - Type: Boolean | |
| - Default: `false` | |
| - Environment Variable: `JITI_DEBUG` | |
| Enable debug to see which files are transpiled | |
| ### `cache` | |
| - 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` | |
| ### `esmResolve` | |
| - Type: Boolean | String | |
| - Default: `false` | |
| - Environment Variable: `JITI_ESM_RESOLVE` | |
| Using esm resolution algorithm to support `import` condition. | |
| ### `transform` | |
| - Type: Function | |
| - Default: Babel (lazy loaded) | |
| Transform function. See [src/babel](./src/babel.ts) 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: `false` | |
| Return the `.default` export of a module at the top-level. | |
| ### `alias` | |
| - Type: Object | |
| - Default: - | |
| - Environment Variable: `JITI_ALIAS` | |
| 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. | |
| ### `experimentalBun` | |
| - Type: Boolean | |
| - Default: Enabled if `process.versions.bun` exists (Bun runtime) | |
| - Environment Variable: `JITI_EXPERIMENTAL_BUN` | |
| Enable experimental native Bun support for transformations. | |
| ## Development | |
| - Clone this repository | |
| - Enable [Corepack](https://github.com/nodejs/corepack) using `corepack enable` | |
| - Install dependencies using `pnpm install` | |
| - Run `pnpm dev` | |
| - Run `pnpm jiti ./test/path/to/file.ts` | |
| ## License | |
| MIT. Made with 💖 | |
| <!-- Badged --> | |
| [npm-version-src]: https://img.shields.io/npm/v/jiti?style=flat&colorA=18181B&colorB=F0DB4F | |
| [npm-version-href]: https://npmjs.com/package/jiti | |
| [npm-downloads-src]: https://img.shields.io/npm/dm/jiti?style=flat&colorA=18181B&colorB=F0DB4F | |
| [npm-downloads-href]: https://npmjs.com/package/jiti | |
| [bundle-src]: https://img.shields.io/bundlephobia/minzip/jiti?style=flat&colorA=18181B&colorB=F0DB4F | |
| [bundle-href]: https://bundlephobia.com/result?p=h3 | |
| [license-src]: https://img.shields.io/github/license/unjs/jiti.svg?style=flat&colorA=18181B&colorB=F0DB4F | |
| [license-href]: https://github.com/unjs/jiti/blob/main/LICENSE | |