1. jiti
Runtime typescript and ESM support for Node.js
jiti
Package: jiti
Created by: unjs
Last modified: Mon, 30 Oct 2023 17:33:36 GMT
Version: 1.21.0
License: MIT
Downloads: 51,294,976
Repository: https://github.com/unjs/jiti

Install

npm install jiti
yarn add jiti

jiti

npm version
npm downloads
bundle
License

Runtime Typescript and ESM support for Node.js.

[!IMPORTANT]
This is the support branch for jiti v1. Check out jiti/main for the latest version and unjs/jiti#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

 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.

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 using corepack enable
  • Install dependencies using pnpm install
  • Run pnpm dev
  • Run pnpm jiti ./test/path/to/file.ts

License

MIT. Made with 💖

Dependencies

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin