includeWebFeedback: false leaves @sentry/browser's feedbackSync in bundles made on Windows, which then fail at launch
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, react-native, typescript
- Área
- build-system, tooling
Línea de trabajo
El issue señala isFromSentryBrowser en dist/js/tools/metroconfig.js como la causa. Lee esa función y el comentario de SENTRY_BROWSER_FEEDBACK_WRAPPER_RE, y luego compara cómo se gestiona originModulePath con barras invertidas de Windows y barras de Unix. Se considera terminado cuando includeWebFeedback: false sustituye por stubs ambos módulos de feedback del navegador en el bundle de Windows y el bundle se inicia correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Environment
@sentry/react-native8.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
- Use
getSentryExpoConfig(__dirname, { includeWebFeedback: false })inmetro.config.js. - On Windows, run
npx expo export --platform ios --source-maps(oreas update). - 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.
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.8k
- Forks
- 372
- Merge medio
- 1 d 2 h
- PR fusionados (30 d)
- 105
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de getsentry/sentry-react-native
-
React-Native Replays Task
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
getsentry/sentry-react-native#6680 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Improvement React-Native
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
getsentry/sentry-react-native#6143 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
React-Native Task User Feedbacks
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
getsentry/sentry-react-native#5932 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
React-Native Replays Task
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
getsentry/sentry-react-native#5882 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Good First Issue React-Native Task
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
getsentry/sentry-react-native#5771 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de getsentry/sentry-react-native
Issues similares
-
area: repo priority: P2 type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
appandflow/stim#4107 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 1-3 horas Aptitud para principiantes 60/100
lingdojo/kana-dojo#32859 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
code-quality refactoring
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
github/gh-aw-firewall#10364 ·
Los mantenedores suelen responder en 1 día
-
Merge the duplicate kaffir_corn record into sorghumPosiblemente ocupada @Crypto-Shroom la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Crypto-Shroom/Bird-Feed-Calculator#322 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
drizzle-team/drizzle-orm#6552 ·
Los mantenedores suelen responder en 2 días