getsentry / sentry-react-native

Official Sentry SDK for React Native
https://sentry.io
MIT License
1.59k stars 337 forks source link

getDefaultConfig from expo/metro-config compromise the sourceMappingURL and it has a wrong hash when exported for web platform #3663

Closed claudioviola closed 2 days ago

claudioviola commented 8 months ago

OS:

Platform:

"@sentry/react-native": "^5.17.0",
"expo": "^50.0.3",
"react-native": "0.73.2",
"react-native-web": "~0.19.6",
"@expo/metro-runtime": "~3.1.2",
"react": "18.2.0",
"react-dom": "18.2.0",

Are you using Expo?

This is the configuration of my metro.config.js placed in the root folder project

// This replaces `const { getDefaultConfig } = require('expo/metro-config');`
const { getSentryExpoConfig } = require('@sentry/react-native/metro');

// This replaces `const config = getDefaultConfig(__dirname);`
const config = getSentryExpoConfig(__dirname);

module.exports = config;

I have the following issue:

Steps to reproduce:

2 files are created AppEntry-9c58c4463ca3cfc79b6525f9cc37e942.js AppEntry-9c58c4463ca3cfc79b6525f9cc37e942.js.map

Actual result: Opening the first file for checking if the sourceMappingURL is correct Actually the sourceMappingURL is wrong and it contains a different hash for the Javascript bundled file //# sourceMappingURL=/_expo/static/js/web/AppEntry-c20e66115809b9d51b0088b809c85f32.js.map

Expected result:

Opening the first file for checking if the sourceMappingURL is correct the sourceMappingURL should contains the correct hash and it should points to the correct file //# sourceMappingURL=/_expo/static/js/web/AppEntry-9c58c4463ca3cfc79b6525f9cc37e942.js.map

if using in the metro.config.js const { getDefaultConfig } = require('expo/metro-config'); the issue disappears and the sourceMappingURL contains the correct file

krystofwoldrich commented 8 months ago

Hi @claudioviola, thank you for the message, I was able to reproduce it in our sample app, we will investigate it.

Fwang36 commented 8 months ago

Hey Krystof,

Support received a request in Zendesk from a user with the same issue. Do you have an update for this problem?

Link to Zendesk ticket

krystofwoldrich commented 8 months ago

Hi @Fwang36, no updates yet, I'll keep you posted here.

amir-dropit commented 7 months ago

@krystofwoldrich is it resolved in v5.22.0?

krystofwoldrich commented 7 months ago

@amir-dropit No, 5.22.0 doesn't fix this particular issue.

amir-dropit commented 6 months ago

How is this not fixed yet?

YishaiGr commented 6 months ago

@krystofwoldrich can you please update on the manner? our source maps were not uploaded for 3 weeks because of this bug

krystofwoldrich commented 6 months ago

Hi, I'm sorry to hear that, I've opened a PR fixing this today.

I'll also post here a workaround which you can use until the fix is released.

YishaiGr commented 6 months ago

Thanks a lot! 🙏

krystofwoldrich commented 6 months ago

Until the fix is released, you can apply the changes from the fix PR using https://www.npmjs.com/package/patch-package

ricklove commented 3 days ago

~This breaks dynamic modules with React.lazy~

krystofwoldrich commented 2 days ago

This was fixed in https://github.com/expo/expo/pull/30980