jiti
Runtime Typescript and ESM support for Node.js
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
const jiti = require("jiti")(__filename);
jiti("./path/to/file.ts");
You can also pass options as second argument:
const jiti = require("jiti")(__filename, { debug: true });
CLI
jiti index.ts
# or npx jiti index.ts
Register require hook
node -r jiti/register index.ts
Alternatively, you can register jiti
as a require hook programmatically:
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 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.
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
MIT. Made with