Description
react-docgen@8.0.3 cannot parse components when its @babel/core dependency is resolved to Babel 8.
babelParser calls loadPartialConfig synchronously. Starting with Babel 8, that API expects a callback; synchronous callers must use loadPartialConfigSync.
This surfaced through Storybook's react-docgen plugin when a workspace-wide override resolved Babel to 8.0.1. Storybook is currently tracking Babel 8 support and explicitly waiting for react-docgen compatibility: storybookjs/storybook#35295
Minimal reproduction
package.json:
{
"private": true,
"type": "module",
"packageManager": "pnpm@11.13.0",
"dependencies": {
"@babel/core": "8.0.1",
"react-docgen": "8.0.3"
}
}
pnpm-workspace.yaml:
packages:
- .
overrides:
'@babel/core': 8.0.1
repro.mjs:
import { parse } from 'react-docgen';
parse('export const Button = ({ label }) => <button>{label}</button>;');
Run:
pnpm install
node repro.mjs
Actual result
Error: Starting from Babel 8.0.0, the 'loadPartialConfig' function expects a callback. If you need to call it synchronously, please use 'loadPartialConfigSync'.
at loadPartialConfig (.../@babel/core/lib/index-shared.js:2207:11)
at buildPluginList (.../react-docgen/dist/babelParser.js:34:27)
Expected result
Parsing succeeds with Babel 8, while retaining Babel 7 compatibility.
Versions
react-docgen: 8.0.3
@babel/core: 8.0.1
- Node.js: 24.18.0
- pnpm: 11.13.0
The likely compatibility change is to use loadPartialConfigSync for this synchronous code path; that API is also available in Babel 7.
Description
react-docgen@8.0.3cannot parse components when its@babel/coredependency is resolved to Babel 8.babelParsercallsloadPartialConfigsynchronously. Starting with Babel 8, that API expects a callback; synchronous callers must useloadPartialConfigSync.This surfaced through Storybook's
react-docgenplugin when a workspace-wide override resolved Babel to 8.0.1. Storybook is currently tracking Babel 8 support and explicitly waiting for react-docgen compatibility: storybookjs/storybook#35295Minimal reproduction
package.json:{ "private": true, "type": "module", "packageManager": "pnpm@11.13.0", "dependencies": { "@babel/core": "8.0.1", "react-docgen": "8.0.3" } }pnpm-workspace.yaml:repro.mjs:Run:
Actual result
Expected result
Parsing succeeds with Babel 8, while retaining Babel 7 compatibility.
Versions
react-docgen: 8.0.3@babel/core: 8.0.1The likely compatibility change is to use
loadPartialConfigSyncfor this synchronous code path; that API is also available in Babel 7.