esm
Tomorrow's ESM today.
Last updated 7 years ago by jdalton .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ gnpm install esm 
SYNC missed versions from official npm registry.

esm

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!

Install

  • 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.

Getting started

There are two ways to enable esm.

  1. Enable esm for packages:

    Use esm to load the main ES module and export it as CommonJS.

    index.js

    // Set options as a parameter, environment variable, or rc file.
    require = require("esm")(module/*, options*/)
    module.exports = require("./main.js")
    

    main.js

    // ESM syntax is supported.
    export {}
    

    :bulb: These files are automagically created with npm init esm or yarn create esm.

  2. Enable esm for local runs:

    node -r esm main.js
    

    :bulb: Omit the filename to enable esm in the REPL.

Features

: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:

Options

Specify options with one of the following:

  • "esm" field in package.json
  • CJS/ESM in an .esmrc.js, .esmrc.cjs, or .esmrc.mjs file
  • JSON6 in an .esmrc or .esmrc.json file
  • JSON6 or file path in the ESM_OPTIONS environment variable
  • ESM_DISABLE_CACHE environment variable
{
"cjs":true

A boolean or object for toggling CJS features in ESM.

<summary>Features</summary>
{
"cache":true

A boolean for storing ES modules in require.cache.

"esModule":true

A boolean for __esModule interoperability.

"extensions":true

A boolean for respecting require.extensions in ESM.

"mutableNamespace":true

A boolean for mutable namespace objects.

"namedExports":true

A boolean for importing named exports of CJS modules.

"paths":true

A boolean for following CJS path rules in ESM.

"vars":true

A boolean for __dirname, __filename, and require in ESM.

"dedefault":false

A boolean for requiring ES modules without the dangling require().default.

"topLevelReturn":false

A boolean for top-level return support.

}
"mainFields":["main"]

An array of fields checked when importing a package.

"mode":"auto"

A string mode:

  • "auto" detect files with import, import.meta, export,
    "use module", or .mjs as ESM.
  • "all" files besides those with "use script" or .cjs are treated as ESM.
  • "strict" to treat only .mjs files as ESM.
"await":false

A boolean for top-level await in modules without ESM exports. (Node 10+)

"force":false

A boolean to apply these options to all module loads.

"wasm":false

A boolean for WebAssembly module support. (Node 8+)

}

DevOpts

{
"cache":true

A boolean for toggling cache creation or a cache directory path.

"sourceMap":false

A boolean for including inline source maps.

}

Tips

Bundling

  • For bundlers like browserify+esmify, parcel-bundler, and webpack add a "module" field to package.json pointing to the main ES module.

    "main": "index.js",
    "module": "main.js"
    

    :bulb: This is automagically done with npm init esm or yarn create esm.

Extensions

Loading

  • Load esm before loaders/monitors like @babel/register, newrelic, sqreen, and ts-node.

  • Load esm for jasmine using the "helpers" field in jasmine.json:

    "helpers": [
      "node_modules/esm"
    ]
    
  • 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.

Current Tags

  • 3.2.25                                ...           latest (5 years ago)

140 Versions

  • 3.2.25                                ...           5 years ago
  • 3.2.24                                ...           5 years ago
  • 3.2.23                                ...           5 years ago
  • 3.2.22                                ...           6 years ago
  • 3.2.21                                ...           6 years ago
  • 3.2.20                                ...           6 years ago
  • 3.2.19                                ...           6 years ago
  • 3.2.18                                ...           6 years ago
  • 3.2.17                                ...           6 years ago
  • 3.2.16                                ...           6 years ago
  • 3.2.15                                ...           6 years ago
  • 3.2.14                                ...           6 years ago
  • 3.2.13                                ...           6 years ago
  • 3.2.12                                ...           6 years ago
  • 3.2.11                                ...           6 years ago
  • 3.2.10                                ...           6 years ago
  • 3.2.9                                ...           6 years ago
  • 3.2.8                                ...           6 years ago
  • 3.2.7                                ...           6 years ago
  • 3.2.6                                ...           6 years ago
  • 3.2.5                                ...           6 years ago
  • 3.2.4                                ...           6 years ago
  • 3.2.3                                ...           6 years ago
  • 3.2.2                                ...           6 years ago
  • 3.2.1                                ...           6 years ago
  • 3.2.0                                ...           6 years ago
  • 3.1.4                                ...           6 years ago
  • 3.1.3                                ...           6 years ago
  • 3.1.2                                ...           6 years ago
  • 3.1.1                                ...           6 years ago
  • 3.1.0                                ...           6 years ago
  • 3.0.84                                ...           6 years ago
  • 3.0.83                                ...           6 years ago
  • 3.0.82                                ...           6 years ago
  • 3.0.81                                ...           6 years ago
  • 3.0.80                                ...           6 years ago
  • 3.0.79                                ...           6 years ago
  • 3.0.78                                ...           6 years ago
  • 3.0.77                                ...           6 years ago
  • 3.0.76                                ...           6 years ago
  • 3.0.75                                ...           6 years ago
  • 3.0.74                                ...           6 years ago
  • 3.0.73                                ...           6 years ago
  • 3.0.72                                ...           6 years ago
  • 3.0.71                                ...           6 years ago
  • 3.0.70                                ...           6 years ago
  • 3.0.69                                ...           6 years ago
  • 3.0.68                                ...           6 years ago
  • 3.0.67                                ...           6 years ago
  • 3.0.66                                ...           6 years ago
  • 3.0.65                                ...           6 years ago
  • 3.0.64                                ...           6 years ago
  • 3.0.63                                ...           6 years ago
  • 3.0.62                                ...           6 years ago
  • 3.0.61                                ...           6 years ago
  • 3.0.60                                ...           6 years ago
  • 3.0.59                                ...           6 years ago
  • 3.0.58                                ...           6 years ago
  • 3.0.56                                ...           6 years ago
  • 3.0.57                                ...           6 years ago
  • 3.0.55                                ...           6 years ago
  • 3.0.54                                ...           6 years ago
  • 3.0.53                                ...           6 years ago
  • 3.0.52                                ...           6 years ago
  • 3.0.51                                ...           6 years ago
  • 3.0.50                                ...           6 years ago
  • 3.0.49                                ...           6 years ago
  • 3.0.48                                ...           6 years ago
  • 3.0.47                                ...           6 years ago
  • 3.0.46                                ...           6 years ago
  • 3.0.45                                ...           6 years ago
  • 3.0.44                                ...           6 years ago
  • 3.0.43                                ...           6 years ago
  • 3.0.42                                ...           6 years ago
  • 3.0.41                                ...           6 years ago
  • 3.0.40                                ...           6 years ago
  • 3.0.39                                ...           6 years ago
  • 3.0.38                                ...           6 years ago
  • 3.0.37                                ...           6 years ago
  • 3.0.36                                ...           6 years ago
  • 3.0.35                                ...           6 years ago
  • 3.0.34                                ...           6 years ago
  • 3.0.33                                ...           6 years ago
  • 3.0.32                                ...           6 years ago
  • 3.0.31                                ...           6 years ago
  • 3.0.30                                ...           6 years ago
  • 3.0.29                                ...           6 years ago
  • 3.0.28                                ...           6 years ago
  • 3.0.27                                ...           6 years ago
  • 3.0.26                                ...           6 years ago
  • 3.0.25                                ...           6 years ago
  • 3.0.24                                ...           6 years ago
  • 3.0.23                                ...           6 years ago
  • 3.0.22                                ...           6 years ago
  • 3.0.21                                ...           6 years ago
  • 3.0.20                                ...           6 years ago
  • 3.0.19                                ...           6 years ago
  • 3.0.18                                ...           6 years ago
  • 3.0.17                                ...           7 years ago
  • 3.0.16                                ...           7 years ago
  • 3.0.15                                ...           7 years ago
  • 3.0.14                                ...           7 years ago
  • 3.0.13                                ...           7 years ago
  • 3.0.12                                ...           7 years ago
  • 3.0.11                                ...           7 years ago
  • 3.0.10                                ...           7 years ago
  • 3.0.9                                ...           7 years ago
  • 3.0.8                                ...           7 years ago
  • 3.0.7                                ...           7 years ago
  • 3.0.6                                ...           7 years ago
  • 3.0.5                                ...           7 years ago
  • 3.0.4                                ...           7 years ago
  • 3.0.3                                ...           7 years ago
  • 3.0.2                                ...           7 years ago
  • 3.0.1                                ...           7 years ago
  • 3.0.0                                ...           7 years ago
  • 2.2.0                                ...           7 years ago
  • 2.1.2                                ...           8 years ago
  • 2.1.1                                ...           8 years ago
  • 2.1.0                                ...           8 years ago
  • 2.0.9                                ...           8 years ago
  • 2.0.8                                ...           8 years ago
  • 2.0.7                                ...           8 years ago
  • 2.0.6                                ...           8 years ago
  • 2.0.5                                ...           8 years ago
  • 2.0.4                                ...           8 years ago
  • 2.0.3                                ...           8 years ago
  • 2.0.2                                ...           8 years ago
  • 2.0.1                                ...           8 years ago
  • 2.0.0                                ...           8 years ago
  • 1.0.9                                ...           9 years ago
  • 1.0.8                                ...           9 years ago
  • 1.0.7                                ...           9 years ago
  • 1.0.6                                ...           9 years ago
  • 1.0.5                                ...           9 years ago
  • 1.0.4                                ...           9 years ago
  • 1.0.3                                ...           9 years ago
  • 1.0.2                                ...           9 years ago
  • 1.0.1                                ...           9 years ago
  • 1.0.0                                ...           9 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (0)
None

Copyright 2013 - present © cnpmjs.org | Home |