Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

esm-loader-test

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

esm-loader-test

Node.js loader for compiling TypeScript modules to ESM

latest
Source
npmnpm
Version
0.0.0-semantic-release
Version published
Maintainers
1
Created
Source

esm-loader

Node.js import hook to instantaneously transform TypeScript to ESM on demand using esbuild.

Features

  • Transforms TypeScript to ESM on demand
  • Classic Node.js resolution (extensionless & directory imports)
  • Cached for performance boost
  • Supports Node.js v12.20.0+
  • Handles node: import prefixes

Tip:

esm-loader doesn't hook into require() calls or transform CommonJS files (.js in commonjs package, .cjs, .cts).

Use this with cjs-loader for CommonJS support. Alternatively, use tsx to handle them both automatically.

Install

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

Usage

Pass @esbuild-kit/esm-loader into the --loader flag.

node --loader @esbuild-kit/esm-loader ./file.ts

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 --loader @esbuild-kit/esm-loader ./file.ts

FAQ

Can it import JSON modules?

Yes. This loader transpiles JSON modules so it's also compatible with named imports.

Can it import ESM modules over network?

Node.js has built-in support for network imports behind the --experimental-network-imports flag.

You can pass it in with esm-loader:

node --loader @esbuild-kit/esm-loader --experimental-network-imports ./file.ts

Can it resolve files without an extension?

In ESM, import paths must be explicit (must include file name and extension).

For backwards compatibility, this loader adds support for classic Node resolution for extensions: .js, .json, .ts, .tsx, .jsx. Resolving a index file by the directory name works too.

import file from './file' // -> ./file.js
import directory from './directory' // -> ./directory/index.js

Keywords

esbuild

FAQs

Package last updated on 19 May 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts