Detect at runtime if Node.js supports ECMAScript modules.
MIT License
Detect at runtime if Node.js supports ECMAScript modules.
$ npm install supports-esm
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:
package.json
, including conditional exportsOne 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.