jiti

Runtime typescript and ESM support for Node.js (CommonJS)

Usage no npm install needed!

<script type="module">
  import jiti from 'https://cdn.skypack.dev/jiti';
</script>

README

jiti

Runtime typescript and ESM support for Node.js (CommonJS)

version downloads size

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

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 Vriable: 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 Vriable: 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 Vriable: JITI_SOURCE_MAPS

Add inline source map to transformed source for better debugging.

Development

  • Clone Repo
  • Run yarn
  • Run yarn build
  • Run yarn dev
  • Run yarn jiti ./test/path/to/file.ts

License

MIT. Made with 💖