nativewind/babel cannot resolve JSX transform with Bun isolated installs
Summary
NativeWind v4.2.6 fails during Expo SDK 56 web bundling with Bun isolated installs because react-native-css-interop/babel references @babel/plugin-transform-react-jsx by package name, but the package does not declare that Babel plugin as a runtime dependency.
Reproduction
- Bun 1.3.14 with
[install] linker = "isolated" - Expo 56.0.12 / babel-preset-expo 56.0.15
- NativeWind 4.2.6 / react-native-css-interop 0.2.6
- Use the documented NativeWind Babel preset configuration
- Run an Expo web bundle request
The child Babel worker throws MODULE_NOT_FOUND for @babel/plugin-transform-react-jsx. When Expo is forced onto the Bun runtime, jest-worker masks this as ResolveMessage is not constructable.
@babel/plugin-transform-react-jsx exists transitively under babel-preset-expo, but strict isolation correctly prevents the application Babel config from resolving it.
Workaround
Declaring @babel/plugin-transform-react-jsx directly in the application devDependencies fixes both Expo Metro web export and Storybook.
Expected fix
Declare the JSX transform plugin in the package that references it at runtime, or resolve it from an owning dependency rather than relying on hoisting.
Source: nativewind/nativewind