Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

includeWebFeedback: false leaves @sentry/browser's feedbackSync in bundles made on Windows, which then fail at launch

Geschlossen Anfängerfreundlich
#6,913 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
74/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
javascript, react-native, typescript

Rechercherichtung

Das Issue nennt isFromSentryBrowser in dist/js/tools/metroconfig.js als Ursache. Lies diese Funktion und den Kommentar zu SENTRY_BROWSER_FEEDBACK_WRAPPER_RE und vergleiche dann, wie originModulePath mit Windows-Backslashes und Unix-Slashes behandelt wird. Fertig ist die Arbeit, wenn includeWebFeedback: false beide Browser-Feedback-Module im Windows-Bundle stubt und das Bundle erfolgreich startet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Bug React-Native Waiting for: Product Owner
Environment
  • @sentry/react-native 8.29.0 (the same code is in 8.31.0)
  • Expo SDK 57, React Native 0.86.3, Metro via getSentryExpoConfig
  • Bundled on Windows 11 (eas update, which bundles locally)
Steps to reproduce
  1. Use getSentryExpoConfig(__dirname, { includeWebFeedback: false }) in metro.config.js.
  2. On Windows, run npx expo export --platform ios --source-maps (or eas update).
  3. List the bundle's source map sources.
Expected result

As on macOS and Linux: @sentry/feedback is stubbed, and so are @sentry/browser's feedbackSync.js and feedbackAsync.js, as the comment above SENTRY_BROWSER_FEEDBACK_WRAPPER_RE describes.

Actual result

@sentry/feedback is stubbed, but @sentry/browser/build/npm/esm/prod/feedbackSync.js and feedbackAsync.js are bundled. feedbackSync.js calls buildFeedbackIntegration() from the empty module as it loads, so the bundle fails at launch. On an expo-updates update, the phone records a failed launch and falls back to its embedded bundle.

The cause is isFromSentryBrowser in dist/js/tools/metroconfig.js:

function isFromSentryBrowser(originModulePath) {
    return originModulePath.includes('@sentry/browser');
}

On Windows, Metro's context.originModulePath uses backslashes (...\node_modules\@sentry\browser\build\...), so this is never true. Matching either separator fixes it, for example /[\/]@sentry[\/]browser[\/]/.test(originModulePath).

Our workaround is to wrap config.resolver.resolveRequest after getSentryExpoConfig and return { type: 'empty' } for /\/feedback(Sync|Async)/ requested from a path matching that pattern.

Vorherrschende Sprache
TypeScript
Sterne
1.8k
Forks
372
Ø Merge
1 T. 1 Std.
Gemergte PRs (30 T.)
107

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus getsentry/sentry-react-native

Alle Issues in getsentry/sentry-react-native

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.