مقدمة
يلتقط Lerix الأخطاء من تطبيق Next.js الخاص بك لتتمكّن من تصحيح المشاكل بشكل أسرع. بعد إتمام تثبيت Next.js، استخدمuseLerix().throwError() لإرسال أخطاء مخصّصة إلى لوحة التحكم — أما
الأخطاء غير الملتقطة فتُلتقط تلقائياً، دون الحاجة لأي كود إضافي.
تأكّد من أن تطبيقك مغلّف بـ
LerixNextProvider قبل الإبلاغ عن الأخطاء.الإبلاغ عن خطأ
المعاملات (Parameters)
قيم BugType
قيم BugSeverity
الالتقاط التلقائي للأخطاء
يُثبّتLerixNextProvider التقاط الأخطاء بطريقتين، بحيث لا حاجة لتغليف أي شيء في try/catch للحصول على تغطية أساسية:
- يلتقط
LerixErrorBoundaryالأخطاء التي تحدث أثناء العرض (rendering) — عقد حدود الأخطاء في React يغطّي فقط مرحلة العرض، وليس معالجات الأحداث أو الكود غير المتزامن. - تلتقط مستمعا
window.onerrorوَunhandledrejectionالعامّان كل شيء آخر.
LerixErrorBoundary في التقاط أخطاء العرض بغضّ النظر عن هذا الخيار):
حدود الأخطاء الخاصة بـ Next.js
يلتقطLerixErrorBoundary فقط الأخطاء الواقعة تحت المكان الذي وضعته فيه.
بالنسبة للأخطاء الأعلى من ذلك — وأبرزها في التخطيط الجذري (root layout)
نفسه — يتطلّب Next.js حدود أخطاء خاصة به قائمة على الملفات (error.tsx،
global-error.tsx). استدعِ reportCaughtError مباشرة داخل هذه الملفات
بدلاً من ذلك:
app/error.tsx
الالتقاط التلقائي لتتبّع المكدس
عند استدعاءthrowError() دون تمرير معامل stack، يُلتقط تتبّع مكدس
تلقائياً من موضع الاستدعاء — لا تحتاج لتمريره صراحةً إلا عند الإبلاغ عن
تتبّع مكدس خطأ (Error) ملتقَط بنفسك بدلاً من موضع استدعاء throwError.
في الحالتين، يُحلَّل كل إطار من إطارات المكدس من موضعه المُجمَّع إلى ملف
المصدر الأصلي وسطره، باستخدام خريطة المصدر الخاصة بالبناء نفسه — بما في
ذلك صيغة خريطة المصدر المُقسَّمة (sectioned) الخاصة بـ Turbopack. يحدث هذا
تلقائياً؛ لا حاجة لأي إعداد.
يتطلّب التحليل أن تكون خريطة المصدر متاحة على رابط الإطار — وهذا صحيح
دائماً في بيئة التطوير، وصحيح في الإنتاج فقط إذا كان بناؤك يقدّم ملفات
.map علناً. إذا أبقى بناء الإنتاج خرائط المصدر خاصة، ترجع الإطارات إلى
موضعها المُجمَّع بدلاً من فشل الإبلاغ.