إضافة مكتبة JS خارجية عالميًا إلى جميع الإضافات والمظهر (المكونات)

الموقف

نريد إضافة مكتبة logging JS الخارجية إلى مثيل Discourse الخاص بنا لتحسين سير عمل تصحيح الأخطاء باستخدام هذه الواجهة الخفيفة للتسجيل التي تتيح لنا، على سبيل المثال، إعداد مستوى السجل عبر log.setLevel('debug').

يجب أن تكون هذه المكتبة الخارجية متاحة في جميع الإضافات المخصصة، والموضوع، ومكونات الموضوع المثبتة على تطبيقنا.

التنفيذ

• هل يؤدي استيراد JS عبر register_asset في إضافات مختلفة إلى استيراد ملف JS عدة مرات؟
• هل توجد مكتبة JS بديلة ذات وظائف مماثلة بعد أن ألغت Ember أداة التسجيل الخاصة بها لصالح console.log؟

اتبعنا حاليًا المسار التالي لتنفيذه:

  1. تثبيت إضافة تستورد JS خارجية وتجعل مكتبة JS متاحة عبر كائن النافذة (window.log = log).
    • استيراد مكتبة JS مرة واحدة فقط.
    • تعتمد الإضافات الأخرى/الموضوع/مكونات الموضوع على تلك الإضافة، كما أن أشياء مثل الإضافات مفتوحة المصدر ستجبر المستخدمين على تثبيت كلا الإضافتين.

هل هذا منطقي أم تقترح نهجًا مختلفًا؟

هذا يبدو مفككًا جدًا بالنسبة لي… لماذا لا تصنع مكونًا أو إضافة مستقلة تقدم هذه الميزة، ثم تتأكد فقط من تثبيتها دائمًا؟

نعم، كانت هذه في الواقع الحل الذي أشرت إلى أننا نستخدمه حاليًا. لدينا إضافة واحدة تستورد ملف JS، وتعتمد الإضافات الأخرى التي تستخدمه على تثبيت هذه الإضافة.

شكرًا لك على الرد!