supports-esm
v1.0.0
Published
Detect at runtime if Node.js supports ECMAScript modules
Downloads
32,203
Readme
supports-esm
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.