Security News
NIST Misses 2024 Deadline to Clear NVD Backlog
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
@esbuild-kit/esm-loader
Advanced tools
@esbuild-kit/esm-loader is an npm package that allows you to use ES modules (ESM) in Node.js environments that do not natively support them. It leverages esbuild to transpile and load ESM code, making it easier to work with modern JavaScript syntax and features.
Transpile ESM to CommonJS
This feature allows you to import and use CommonJS modules in an ESM context. The code sample demonstrates how to use the `createRequire` function to require a CommonJS module in an ESM file.
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const { exampleFunction } = require('./example-file.js');
exampleFunction();
Load TypeScript files
This feature allows you to directly import and use TypeScript files in your Node.js project. The code sample shows how to import a TypeScript file and call a function from it.
import { exampleFunction } from './example-file.ts';
exampleFunction();
Support for JSX/TSX
This feature enables you to import and use JSX/TSX files in your Node.js project. The code sample demonstrates how to import a TSX file and render a React component.
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.tsx';
ReactDOM.render(<App />, document.getElementById('root'));
ts-node is a TypeScript execution engine and REPL for Node.js. It allows you to run TypeScript code directly without precompiling. Compared to @esbuild-kit/esm-loader, ts-node focuses more on TypeScript execution and less on ESM support.
babel-register is a package that hooks into Node.js require to compile files on the fly using Babel. It supports a wide range of JavaScript syntax and features. While it provides similar functionality to @esbuild-kit/esm-loader, it relies on Babel instead of esbuild for transpilation.
esm is a package that enables ES module support in Node.js. It allows you to use ESM syntax in Node.js versions that do not natively support it. Compared to @esbuild-kit/esm-loader, esm is more focused on providing ESM support without additional transpilation features.
Node.js import
hook to instantaneously transform TypeScript to ESM on demand using esbuild.
.cjs
& .mjs
(.cts
& .mts
)node:
import prefixesTip:
esm-loader doesn't hook into
require()
calls.Use this with cjs-loader for
require()
support. Alternatively, use tsx to handle them both automatically.
npm install --save-dev @esbuild-kit/esm-loader
Pass @esbuild-kit/esm-loader
into the --loader
flag.
node --loader @esbuild-kit/esm-loader ./file.ts
The following properties are used from tsconfig.json
in the working directory:
jsxFactory
jsxFragmentFactory
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
Yes. This loader transpiles JSON modules so it's also compatible with named imports.
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
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
tsx - Node.js runtime powered by esbuild using @esbuild-kit/cjs-loader
and @esbuild-kit/esm-loader
.
@esbuild-kit/cjs-loader - TypeScript & ESM to CJS transpiler using the Node.js loader API.
FAQs
Node.js loader for compiling TypeScript modules to ESM
We found that @esbuild-kit/esm-loader demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.