supports-esm

1.0.0 • Public • Published

supports-esm

NPM version build status npm download License

Detect at runtime if Node.js supports ECMAScript modules.

Installation

$ npm install supports-esm

Usage

This library exports true if the current Node.js version is considered to have reasonable support for ESM features, false otherwise.

Version 1.x returns true if the following features are all present:

  • Dynamic imports
  • "exports" field in package.json, including conditional exports
  • Package self-reference

One notable use case is to conditionally execute an ESM or CommonJS entrypoint from a "bin" script, such as a command-line interface authored in ESM and transpiled to CommonJS for backwards compatibility:

'use strict';
 
const supportsESM = require('supports-esm');
 
if (supportsESM) {
  import('../src/cli.js').catch((error) => {
    console.error(error);
    process.exit(1);
  });
} else {
  require('../build-cjs/cli.js');
}

This snippet works in all Node.js versions >= 10.0.0.

Readme

Keywords

Package Sidebar

Install

npm i supports-esm

Weekly Downloads

10,169

Version

1.0.0

License

MIT

Unpacked Size

3.49 kB

Total Files

4

Last publish

Collaborators

  • targos