canirequire

canirequire › CommonJS › @babel/compat-data

Is @babel/compat-data ESM-only? Can you require() it?

The compat-data to determine required Babel plugins

Last verified Sep 9, 2026 against @babel/compat-data@8.0.0. Markdown · JSON

CommonJS CommonJS, subpaths only — require("@babel/compat-data/…") works, require("@babel/compat-data") does not

@babel/compat-data exposes only subpaths in its exports map, for example "@babel/compat-data/plugins"; there is no root entry, so require("@babel/compat-data") and import "@babel/compat-data" both throw ERR_PACKAGE_PATH_NOT_EXPORTED. The subpaths are CommonJS: require("@babel/compat-data/plugins") works everywhere, and import "@babel/compat-data/plugins" works through Node's CommonJS interop.

What to do

  1. Load subpaths, never the bare name: const compatData = require("@babel/compat-data/plugins"). require("@babel/compat-data") throws ERR_PACKAGE_PATH_NOT_EXPORTED.
  2. From ES modules use the default import: import compatData from "@babel/compat-data/plugins"; then destructure. Named imports only work when Node.js can statically detect the exports.
  3. TypeScript: no types are available for @babel/compat-data; declare the module yourself if you need them.
Latest
8.0.0 (Jun 16, 2026)
Module format
CommonJS
Last CommonJS version
8.0.0
TypeScript types
None
Node engines
^22.18.0 || >=24.11.0
Weekly downloads
125.1M
License
MIT

Does @babel/compat-data@8.0.0 actually load? Runtime test results

Installed and executed on Sep 9, 2026 with require("@babel/compat-data") from a CommonJS file and import "@babel/compat-data" from an ES module.

Runtimerequire("@babel/compat-data")import "@babel/compat-data"
Node.js 18✗ failsERR_PACKAGE_PATH_NOT_EXPORTED✗ failsERR_PACKAGE_PATH_NOT_EXPORTED
Node.js 20✗ failsERR_PACKAGE_PATH_NOT_EXPORTED✗ failsERR_PACKAGE_PATH_NOT_EXPORTED
Node.js 22✗ failsERR_PACKAGE_PATH_NOT_EXPORTED✗ failsERR_PACKAGE_PATH_NOT_EXPORTED
Node.js 24✗ failsERR_PACKAGE_PATH_NOT_EXPORTED✗ failsERR_PACKAGE_PATH_NOT_EXPORTED
Node.js 26✗ failsERR_PACKAGE_PATH_NOT_EXPORTED✗ failsERR_PACKAGE_PATH_NOT_EXPORTED
Bun 1.4.0✗ failsError✗ failsError

A failing require() on a CommonJS package usually means the package needs a browser/DOM global, a peer dependency, or a native binary that is not available in a bare Node.js process.

How to import @babel/compat-data

ES modules (import)

import compatData from "@babel/compat-data/plugins";

Named imports from a CommonJS package only work when Node.js can statically detect them. If a named import fails, use the default import and destructure.

CommonJS (require)

const compatData = require("@babel/compat-data/plugins");

Module format by version

Derived from the type, main and exports fields of every stable release on npm, corrected where a runtime test of that version contradicted them (94 versions; the newest 60 shown).

VersionsFormatFirst published
7.17.0 – 8.0.0CommonJSFeb 2, 2022

Frequently asked

Is @babel/compat-data ESM-only?

@babel/compat-data@8.0.0 is a CommonJS package, reachable only through subpaths. @babel/compat-data exposes only subpaths in its exports map, for example "@babel/compat-data/plugins"; there is no root entry, so require("@babel/compat-data") and import "@babel/compat-data" both throw ERR_PACKAGE_PATH_NOT_EXPORTED. The subpaths are CommonJS: require("@babel/compat-data/plugins") works everywhere, and import "@babel/compat-data/plugins" works through Node's CommonJS interop.

Can I require @babel/compat-data?

Only by subpath. require("@babel/compat-data") throws ERR_PACKAGE_PATH_NOT_EXPORTED because the exports map has no root entry; require("@babel/compat-data/plugins") works.

Can I import @babel/compat-data with ES module syntax?

Yes. import compatData from "@babel/compat-data/plugins" works in Node.js and Bun because they support importing CommonJS modules. Named imports work only when Node.js can statically detect the exports.

Does @babel/compat-data work in Bun?

Importing @babel/compat-data failed in Bun 1.4.0 on Sep 9, 2026: error: Cannot find module '@babel/compat-data' from '/Users/boat/Projects/top-seo/data/probe-work/@babel__compat-data/imp.mjs'

Does @babel/compat-data ship TypeScript types?

No. @babel/compat-data ships no type declarations and there is no @types package for it.

Links

Other commonjs packages

Similar popularity