cjs-loader
Node.js require()
hook to instantaneously transform ESM & TypeScript to CommonJS on demand using esbuild.
Features
- Transforms ESM & TypeScript to CommonJS on demand
- Supports TS extensions
.cjs
& .mjs
(.cts
& .mts
) - Cached for performance boost
- Supports Node.js v12.16.2+
- Handles
node:
import prefixes
Tip:
cjs-loader doesn't hook into dynamic import()
calls.
Use this with esm-loader for import()
support. Alternatively, use tsx to handle them both automatically.
Install
npm install --save-dev @esbuild-kit/cjs-loader
Usage
Pass @esbuild/cjs-loader
into the --require
flag
node -r @esbuild/cjs-loader ./file.js
TypeScript configuration
The following properties are used from tsconfig.json
in the working directory:
jsxFactory
jsxFragmentFactory
Cache
Modules transformations are cached in the system cache directory (TMPDIR
). Transforms are cached by content hash so duplicate dependencies are not re-transformed.
Set environment variable ESBK_DISABLE_CACHE
to a truthy value to disable the cache:
ESBK_DISABLE_CACHE=1 node -r @esbuild/cjs-loader ./file.js
Related