Gathering detailed insights and metrics for esm
Gathering detailed insights and metrics for esm
Gathering detailed insights and metrics for esm
Gathering detailed insights and metrics for esm
is-file-esm
Determines whether a Node file is a Module (`import`) or a Script (`require`)
@esbuild-kit/esm-loader
Node.js loader for compiling TypeScript modules to ESM
@humanwhocodes/module-importer
Universal module importer for Node.js
mdast-util-mdxjs-esm
mdast extension to parse and serialize MDX.js ESM (import/exports)
npm install esm
Typescript
Module System
Min. Node Version
Node Version
NPM Version
97.2
Supply Chain
88.7
Quality
75.9
Maintenance
100
Vulnerability
100
License
JavaScript (99.87%)
WebAssembly (0.08%)
TypeScript (0.05%)
Love this project? Help keep it running — sponsor us today! 🚀
Total Downloads
584,461,185
Last Day
145,715
Last Week
3,024,101
Last Month
11,507,689
Last Year
134,159,140
NOASSERTION License
5,273 Stars
6,378 Commits
147 Forks
57 Watchers
1 Branches
29 Contributors
Updated on Jan 27, 2025
Minified
Minified + Gzipped
Latest Version
3.2.25
Package Id
esm@3.2.25
Size
89.29 kB
NPM Version
6.9.0
Node Version
12.2.0
Published on
May 17, 2019
Cumulative downloads
Total Downloads
Last Day
-3.4%
145,715
Compared to previous day
Last Week
4%
3,024,101
Compared to previous week
Last Month
30.2%
11,507,689
Compared to previous month
Last Year
11%
134,159,140
Compared to previous year
No dependencies detected.
The brilliantly simple, babel-less, bundle-less ECMAScript module loader.
esm
is the world’s most advanced ECMAScript module loader. This fast, production ready, zero dependency loader is all you need to support ECMAScript modules in Node 6+. See the release post and video for details!
New projects
Run npm init esm
or yarn create esm
.
:bulb: Use the -y
flag to answer “yes” to all prompts.
Existing projects
Run npm i esm
or yarn add esm
.
There are two ways to enable esm
.
Enable esm
for packages:
Use esm
to load the main ES module and export it as CommonJS.
index.js
1// Set options as a parameter, environment variable, or rc file. 2require = require("esm")(module/*, options*/) 3module.exports = require("./main.js")
main.js
1// ESM syntax is supported. 2export {}
:bulb: These files are automagically created with npm init esm
or yarn create esm
.
Enable esm
for local runs:
1node -r esm main.js
:bulb: Omit the filename to enable esm
in the REPL.
:clap: By default, :100: percent CJS interoperability is enabled so you can get stuff done.
:lock: .mjs
files are limited to basic functionality without support for esm
options.
Out of the box esm
just works, no configuration necessary, and supports:
import
/export
import.meta
import
stdin
, --eval
, --print
flags--check
flag (Node 10+)Specify options with one of the following:
"esm"
field in package.json
.esmrc.js
, .esmrc.cjs
, or .esmrc.mjs
file.esmrc
or .esmrc.json
fileESM_OPTIONS
environment variableESM_DISABLE_CACHE
environment variable{ | |||||||||||||||||||||||
"cjs":true | A boolean or object for toggling CJS features in ESM. Features
| ||||||||||||||||||||||
"mainFields":["main"] | An array of fields checked when importing a package. | ||||||||||||||||||||||
"mode":"auto" | A string mode:
| ||||||||||||||||||||||
"await":false | A boolean for top-level | ||||||||||||||||||||||
"force":false | A boolean to apply these options to all module loads. | ||||||||||||||||||||||
"wasm":false | A boolean for WebAssembly module support. (Node 8+) | ||||||||||||||||||||||
} |
{ | |
"cache":true | A boolean for toggling cache creation or a cache directory path. |
"sourceMap":false | A boolean for including inline source maps. |
} |
For bundlers like browserify
+esmify
,
parcel-bundler
, and webpack
add a "module"
field to package.json
pointing to the main ES module.
1"main": "index.js", 2"module": "main.js"
:bulb: This is automagically done with npm init esm
or yarn create esm
.
esm
for wallaby.js
following their
integration example.Load esm
before loaders/monitors like
@babel/register
,
newrelic
,
sqreen
, and
ts-node
.
Load esm
for jasmine
using the
"helpers"
field in jasmine.json
:
1"helpers": [ 2 "node_modules/esm" 3]
Load esm
with “node-args" options of:
pm2
: --node-args="-r esm"
Load esm
with “require” options of
ava
,
mocha
,
nodemon
,
nyc
,
qunit
,
tape
, and
webpack
.
:bulb: Builtin require
cannot sideload .mjs
files. However, .js
files
can be sideloaded or .mjs
files may be loaded with dynamic import
.
Stable Version
1
0/10
Summary
Regular Expression Denial of Service
Affected Versions
< 3.1.0
Patched Versions
3.1.0
Reason
license file detected
Details
Reason
binaries present in source code
Details
Reason
Found 4/30 approved changesets -- score normalized to 1
Reason
project is archived
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
project is not fuzzed
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
105 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-02-10
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More