includeWebFeedback: false leaves @sentry/browser's feedbackSync in bundles made on Windows, which then fail at launch
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 74/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- javascript, react-native, typescript
- Lĩnh vực
- build-system, tooling
Hướng nghiên cứu
Issue xác định isFromSentryBrowser trong dist/js/tools/metroconfig.js là nguyên nhân. Đọc hàm đó và chú thích SENTRY_BROWSER_FEEDBACK_WRAPPER_RE, sau đó so sánh cách xử lý originModulePath với dấu gạch chéo ngược của Windows và dấu gạch chéo xuôi của Unix. Công việc hoàn tất khi includeWebFeedback: false tạo stub cho cả hai mô-đun browser feedback trong bundle Windows và bundle khởi chạy thành công.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- TypeScript
- Star
- 1.8k
- Fork
- 372
- Merge trung bình
- 1 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 105
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của getsentry/sentry-react-native
-
React-Native Replays Task
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
getsentry/sentry-react-native#6680 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Improvement React-Native
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
getsentry/sentry-react-native#6143 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
React-Native Task User Feedbacks
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
getsentry/sentry-react-native#5932 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
React-Native Replays Task
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
getsentry/sentry-react-native#5882 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Good First Issue React-Native Task
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 65/100
getsentry/sentry-react-native#5771 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của getsentry/sentry-react-native
Issue tương tự
-
RED ladder stopped @ 4db4ed91Đang mởarea:workflow bug ready-for-human
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
fil-donadoni/tolaria#6108 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/rocketmq-dashboard#7234 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
vitest-dev/vitest#11656 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
e2e-failure ready-to-code
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
redhat-developer/rhdh-plugin-export-overlays#4460 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
ehmpathy/rhachet-roles-bhrain#655 ·
Maintainer thường phản hồi trong vòng 1 ngày