Fix Reanimated unresolved imports under webpack

This commit is contained in:
Oleksii Bulenok
2026-07-31 11:08:04 +02:00
parent e9b1330249
commit 2397832bd5
2 changed files with 32 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
/*
* Replacement for react-native-reanimated's js-reanimated/webUtils.web.js,
* wired up via a webpack alias in webpack.config.js.
*
* The original file declares ES module exports but populates them with bare
* CommonJS `require()` calls wrapped in try/catch. Webpack parses the file as
* ESM and therefore leaves those `require`s untouched, so in the browser they
* throw ReferenceError, the try/catch swallows it, and createReactDOMStyle &
* co. stay undefined. That silently disables reanimated's DOM update path and
* _updatePropsJS later crashes with "Cannot convert undefined or null to
* object" on Object.keys(component.props). Importing the same react-native-web
* internals statically fixes the resolution.
*/
import createReactDOMStyle from 'react-native-web/dist/exports/StyleSheet/compiler/createReactDOMStyle'
import {
createTextShadowValue,
createTransformValue,
} from 'react-native-web/dist/exports/StyleSheet/preprocess'
export {createReactDOMStyle, createTextShadowValue, createTransformValue}
+12
View File
@@ -77,6 +77,18 @@ module.exports = async function (env, argv) {
__dirname,
'node_modules/react-native-svg/lib/module/utils/fetchData',
)]: false,
/*
* reanimated's webUtils.web.js mixes ESM exports with bare CommonJS
* require() calls in try/catch, which webpack leaves untranspiled - they
* throw at runtime and createReactDOMStyle & co. silently stay undefined,
* making _updatePropsJS crash on every animated style update. The shim
* imports the same react-native-web internals statically. See the shim
* file for details.
*/
[path.join(
__dirname,
'node_modules/react-native-reanimated/lib/module/ReanimatedModule/js-reanimated/webUtils',
)]: path.join(__dirname, 'web/reanimatedWebUtilsShim.js'),
})
/*