esbuild-node-loader
raw JSON → 0.8.0 verified Fri May 01 auth: no javascript
Transpile TypeScript to ESM using Node.js loader hooks, leveraging esbuild for fast compilation. Current stable version is 0.8.0. Release cadence is irregular, with updates addressing loader hook deprecations and minor features. Compared to esbuild-register, this package targets Node.js ESM (ECMAScript Modules) rather than CommonJS. It supports .ts, .tsx, and .json files, and resolves extensions automatically. Primarily used as a development tool for running TypeScript files directly with Node.js without a separate build step.
Common errors
error TypeError: is not a function ↓
cause Using --experimental-loader with Node.js <16.12 or incorrect loader format.
fix
Ensure Node.js >=16.12 and use --loader, not --experimental-loader.
Warnings
deprecated --experimental-loader is deprecated; use --loader instead ↓
fix Use --loader (without experimental) for Node.js >=18.8.
breaking Loader hooks changed in Node.js >=16.12 ↓
fix Use Node.js >=16.12 or downgrade loader version.
gotcha Requires esbuild to be installed separately ↓
fix Run npm install esbuild --save-dev alongside esbuild-node-loader.
Install
npm install esbuild-node-loader yarn add esbuild-node-loader pnpm add esbuild-node-loader Imports
- default wrong
node -r esbuild-node-loader file.tscorrectnode --loader esbuild-node-loader file.ts - N/A (loader) wrong
require('esbuild-node-loader')correctnode --loader esbuild-node-loader/register.mjs file.ts
Quickstart
npm install esbuild-node-loader --save-dev
echo "console.log('Hello from TypeScript');" > hello.ts
node --loader esbuild-node-loader hello.ts