@esbuild-kit/cjs-loader
Node.js loader for compiling ESM & TypeScript modules to CommonJS
Last updated 4 years ago by hirokiosame .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @esbuild-kit/cjs-loader 
SYNC missed versions from official npm registry.

cjs-loader

Node.js require() hook for loading ESM & TypeScript.

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
  • Resolves tsconfig.json paths

Protip: use with esm-loader or tsx

cjs-loader only transforms CommonJS modules (.cjs/.cts or .js files in commonjs type packages).

To hook into import() calls or ES modules (.mjs/.mts extensions or .js files in module type packages), use this with esm-loader.

Alternatively, use tsx to handle them both automatically.


<picture> <source width="830" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum&image=dark"> <source width="830" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum&image"> Premium sponsor banner </picture>

Install

npm install --save-dev @esbuild-kit/cjs-loader

Usage

Pass @esbuild-kit/cjs-loader into the --require flag

node -r @esbuild-kit/cjs-loader ./file.js

TypeScript configuration

The following properties are used from tsconfig.json in the working directory:

  • strict: Whether to transform to strict mode
  • jsx: Whether to transform JSX

    Warning: When set to preserve, the JSX syntax will remain untransformed. To prevent Node.js from throwing a syntax error, chain another Node.js loader that can transform JSX to JS.

  • jsxFactory: How to transform JSX
  • jsxFragmentFactory: How to transform JSX Fragments
  • jsxImportSource: Where to import JSX functions from
  • allowJs: Whether to apply the tsconfig to JS files
  • paths: For resolving aliases

Custom tsconfig.json path

By default, tsconfig.json will be detected from the current working directory.

To set a custom path, use the ESBK_TSCONFIG_PATH environment variable:

ESBK_TSCONFIG_PATH=./path/to/tsconfig.custom.json node -r @esbuild-kit/cjs-loader ./file.js

<picture> <source width="830" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold&image=dark"> <source width="830" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold&image"> Premium sponsor banner </picture>

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-kit/cjs-loader ./file.js

Related

Sponsors

<picture> <source width="410" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1&image=dark"> <source width="410" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1&image"> Premium sponsor banner </picture> <picture> <source width="410" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2&image=dark"> <source width="410" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2&image"> Premium sponsor banner </picture>

Current Tags

  • 2.4.4                                ...           latest (3 years ago)

17 Versions

  • 2.4.4                                ...           3 years ago
  • 2.4.3                                ...           3 years ago
  • 2.4.2                                ...           3 years ago
  • 2.4.1                                ...           3 years ago
  • 2.4.0                                ...           4 years ago
  • 2.3.3                                ...           4 years ago
  • 2.3.2                                ...           4 years ago
  • 2.3.1                                ...           4 years ago
  • 2.3.0                                ...           4 years ago
  • 2.2.1                                ...           4 years ago
  • 2.2.0                                ...           4 years ago
  • 2.1.0                                ...           4 years ago
  • 2.0.1                                ...           4 years ago
  • 2.0.0                                ...           4 years ago
  • 1.0.2                                ...           4 years ago
  • 1.0.1                                ...           4 years ago
  • 1.0.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (2)
Dev Dependencies (10)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |