رفع Source Maps
يدعم OpenReplay إلغاء تصغير JavaScript عبر source maps. من خلال رفعها إلى OpenReplay، ستتمكن من رؤية سياق الكود المصدري المستخرج من تتبعات المكدس (stack traces) في صورته الأصلية، وهو أمر مفيد جدًا في تصحيح أخطاء الكود المُصغَّر (UglifyJS) أو الكود المُترجَم (TypeScript، ES6).
الإعداد
Section titled الإعدادثبّت وحدة NPM المسماة sourcemap-uploader:
npm i -g @openreplay/sourcemap-uploader
المتطلبات المسبقة
Section titled المتطلبات المسبقةتأكد من أن عملية البناء (build) لديك تنتج ملفات source map منفصلة (.map). على سبيل المثال، إذا كنت تستخدم webpack، فيجب أن يتضمن إعدادك خيار devtool التالي:
{ devtool: ‘source-map’ }
رفع Source Maps إلى OpenReplay
Section titled رفع Source Maps إلى OpenReplayبعد ذلك، تحتاج إلى إعداد عملية البناء لديك لإنشاء ملفات المصدر المختلفة. يمكن رفع source maps لـ ملف واحد:
sourcemap-uploader -s https://openreplay.mycompany.com/api -k API_KEY -p PROJECT_KEY file -m ./dist/index.js.map -u https://myapp.com/index.js
أو لـ مجلد يحتوي على ملفات متعددة. في هذه الحالة، يجب أن يتوافق الـ URL (المسار الدقيق) مع الجذر الذي ترفع منه ملفات JS الموجودة في المجلد. بعبارة أخرى، إذا كان لديك ملف app-42.js بجانب ملف app-42.js.map في مجلد ./build وأردت بعد ذلك رفعه إلى نسخة OpenReplay الخاصة بك بحيث يمكن الوصول إليه عبر الرابط https://myapp.com/static/app-42.js، فيجب أن يكون الأمر كالتالي:
sourcemap-uploader -s https://openreplay.mycompany.com/api -k API_KEY -p PROJECT_KEY dir -m ./build -u https://myapp.com/static
المعاملات
Section titled المعاملات-s: عنوان URL لنسخة OpenReplay الخاصة بك. تأكد من إلحاقه بـ /api. لا تحدد هذا المعامل إذا كنت تستخدم OpenReplay Cloud.-k: API Key (يوجد في ‘Preferences’ > ‘Account’ > ‘Organization API Key’).-p: Project Key (يوجد في ‘Preferences’ > ‘Projects’).-m: المسار إلى ملف (ملفات) source map (يمكن أن يكون أيضًا مجلدًا).-u: عنوان URL لأصل JavaScript (في حالة ملف واحد) أو عنوان URL الأساسي (في حالة المجلد).-l: لعرض سجلات الرفع.
هل لديك أسئلة؟
Section titled هل لديك أسئلة؟إذا كانت لديك أي أسئلة حول هذه العملية، فلا تتردد في التواصل معنا عبر Slack أو الاطلاع على المنتدى الخاص بنا.