Sentry-javascript: الوحدة النمطية "ngRaven" غير متوفرة! إما أنك أخطأت في كتابة اسم الوحدة أو نسيت تحميلها. في حالة تسجيل وحدة نمطية ، تأكد من تحديد التبعيات باعتبارها الوسيطة الثانية.

تم إنشاؤها على ١٤ مارس ٢٠١٦  ·  23تعليقات  ·  مصدر: getsentry/sentry-javascript

هذا هو ترتيب الملفات الخاص بي في karma.conf.js لإجراء اختبارات كارما ياسمين أونينت ..

الملفات: ['app / bower_components / jquery / dist / jquery.min.js'،
"app / bower_components / angular / angular.min.js" ،
"app / bower_components / raven-js / dist / raven.js" ،
"app / bower_components / raven-js / plugins / angular.js"
]
حدث على الرغم من أنني قمت بتضمين "app / bower_components / raven-js / plugins / angular.js" لقد تلقيت خطأ يفيد بأن الوحدة "ngRaven" غير متوفرة.

التعليق الأكثر فائدة

حسنًا ، هذا يتعارض في الواقع مع الطريقة Angular حيث نقوم عادة بهذا النوع من التكوين في وحدة تتطلب ngRaven ، لكن القيام بهذه الطريقة يجعل ذلك مستحيلًا.

أعتقد أنه يجب عليك تحديد ذلك في الوثائق لأنه غير محدد على الإطلاق.

ال 23 كومينتر

+1

هل هناك شيء عملي يمكننا القيام به هنا؟ أنا في حيرة من أمري. :)

أوه ، كيه ، قرأت Stackoverflow. إنه يعمل مع حزمة angular-raven ، ولكن ليس مع حزمة angular-raven.

وفقًا للوثائق الحالية ، يجب أن يعمل المكون الإضافي الحارس الزاوي الآن

https://docs.getsentry.com/hosted/clients/javascript/integrations/angular/

قد يكون الدليل "dist" مفقودًا في "app / bower_components / raven-js / plugins / angular.js"؟

وفقًا للمستندات [https://docs.getsentry.com/hosted/clients/javascript/integrations/angular/#bower] يجب أن يكون:

<script src="/bower_components/raven-js/dist/plugins/angular.js"></script>

بعد التوثيق الزاوي لا يمكن العثور على الوحدة بالنسبة لي. يعمل حل تجاوز سعة المكدس بالنسبة لي على الرغم من ذلك.

قد يكون الدليل "dist" مفقودًا في "app / bower_components / raven-js / plugins / angular.js"؟

هذا من شأنه أن يفعل ذلك بالتأكيد.

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

benvinegar https://plnkr.co/edit/S1Dk9t؟p=preview هذه عينة بسيطة من الخطأ ،

بناءً على https://github.com/getsentry/raven-js/blob/master/docs/integrations/angular.rst
انها تقول:
_ لاحظ أن بناء CDN هذا يقوم تلقائيًا بالتهيئة التلقائية للملحق Angular.

لكن استيراد ذلك فقط كما تقول المستندات يؤدي إلى حدوث خطأ ، يرجى التحقق من السجل في plnkr
[$ حاقن: nomod ] الوحدة النمطية "ngRaven" غير متوفرة! إما أنك أخطأت في كتابة اسم الوحدة أو نسيت تحميلها. في حالة تسجيل وحدة نمطية ، تأكد من تحديد التبعيات باعتبارها الوسيطة الثانية.

ربما هذا مجرد تفسير خاطئ للمستندات؟

أي أخبار عن هذا؟ أعتقد أن المكون الإضافي الزاوي لا يعمل إلا مع CommonJs ، حيث لا يتم استدعاء هذا في الواقع عند تضمين الملف فقط. الرجاء الإصلاح حتى نتمكن من استخدام البرنامج المساعد

إليك أبسط مثال بعد صفحة التكامل التي لا تعمل: https://plnkr.co/edit/M5nt6Y؟p=preview

RobertBaronmebibou - في كل من الأمثلة تحتاج إلى تكوين الغراب قبل تهيئة التطبيق. لم تتم تهيئة المكونات الإضافية حتى يتم استدعاء Raven.install() .

هذا في جميع أمثلة التوثيق ، على سبيل المثال:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script src="https://cdn.ravenjs.com/3.6.1/angular/raven.min.js"></script>
<script>Raven.config('https://<key>@app.getsentry.com/<project>').install();</script>

على الرغم من أنه يمكن توضيح أن البرنامج النصي للتطبيق الخاص بك (على سبيل المثال app.js ) يجب أن يأتي بعد ذلك.

حسنًا ، هذا يتعارض في الواقع مع الطريقة Angular حيث نقوم عادة بهذا النوع من التكوين في وحدة تتطلب ngRaven ، لكن القيام بهذه الطريقة يجعل ذلك مستحيلًا.

أعتقد أنه يجب عليك تحديد ذلك في الوثائق لأنه غير محدد على الإطلاق.

+1

راجع # 413 ، benvinegar هل هو جاهز

Sija - نظرًا لأن الأشخاص يواصلون التعثر في هذا الأمر ، فأنا لا أوافق على الدمج. على الرغم من أنني قلق بشأن القضية التي قد يكون فيها شخص ما قد صرح بأن Raven _before_ Angular. ولكن يحتاج مستخدمو CDN على الأقل إلى الترقية يدويًا.

لا تنس أن تضيف الجزء بالخط العريض أدناه

غراب أسود
.config ('https: //@ sentry.io /")
.addPlugin (Raven.Plugins.Angular)
.تثبيت()؛

theatrain بالإضافة إلى أنك تحتاج إلى إضافة تجاوز على package.json إذا كنت تستخدم حقنة gulp أو أي شيء مشابه يتضمن اعتمادات الحزم على html الخاص بك تلقائيًا.
كان الجزء التالي هو الإصلاح الذي أجريته منذ أن استخدمت حقن البلع

    "overrides": {
        "raven-js" : {
            "main": [
                "dist/raven.js",
                "dist/plugins/angular.js"
            ]
        }
    },

لقد وجدت حلاً جيدًا للنخر أيضًا لأن كل شيء كان مبهمًا ومُصغرًا:

بدا app.js كما يلي:

'use strict';

angular
  .module('sraApp', [
    'ngRaven'
  ]);

لقد أنشأت ملفًا آخر باسم raven.js

// redacted sensitive info
Raven
  .config('https://<code>@sentry.io/<myapp>')
  .addPlugin(Raven.Plugins.Angular)
  .install();

وفي index.html بدلاً من البرامج النصية المضمنة:

<!-- build:js(.) scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/raven-js/dist/raven.js"></script>
<!-- endbower -->
<!-- Outside of auto-managed bower, but still inside compile -> vender.js -->
<script src="bower_components/raven-js/dist/plugins/angular.js"></script>
<!-- endbuild -->

<!-- build:js({.tmp,app}) scripts/scripts.js -->
<script src="scripts/raven.js"></script>
<script src="scripts/app.js"></script>
<!-- endbuild -->

الآن عندما أقوم بـ grunt build:dist الذي يقوم بتقليل / تصغير grunt ، سيعمل على تحسين البرنامج النصي الخاص بي بحيث يمكن تسجيل المكون الإضافي. لن يؤدي القيام بالبرامج النصية المضمنة إلى التحسين ، لذا لن يكون window.angular مناسبًا للمكوّن الإضافي في التحميل التلقائي لنفسه.

بشكل عام ، يكون التدفق على النحو التالي (الوثائق صحيحة)

  • جلب angular
  • جلب raven
  • جلب raven/plugins/angular.js
  • config / addPlugin / install ngRaven لكن تم إجراؤه بشكل صحيح لمراعاة التقصير / التصغير

أيضًا شيء آخر يجب ملاحظته أن معظم التكوينات يمكن أن تحدث لاحقًا (على الرغم من أنك تفوت علامات على أي مشكلات أثناء التمهيد)

على سبيل المثال ، تم تحميل تهيئة heroku بعد وقوعها.

'use strict';

angular.module('sraApp')
  .run(function (Raven, HEROKU_APP_ID, HEROKU_APP_NAME, HEROKU_RELEASE_CREATED_AT, HEROKU_RELEASE_VERSION, HEROKU_SLUG_COMMIT, HEROKU_SLUG_DESCRIPTION, NODE_ENV) {
    Raven.setRelease(HEROKU_RELEASE_VERSION);
    Raven.setEnvironment(NODE_ENV);
    Raven.setTagsContext({
      release_date: HEROKU_RELEASE_CREATED_AT,
      git_commit: HEROKU_SLUG_COMMIT,
      slug_description: HEROKU_SLUG_DESCRIPTION,
      application: {
        name: HEROKU_APP_NAME,
        id: HEROKU_APP_ID,
      }
    });
  });

أي تحديث على هذا؟ لدينا أيضًا مشاكل هنا مع مجموعة اختبار الكرمة الخاصة بنا.

xeroxoid لقد

في حالتنا ، كنا نتخطى الإجراء الروتيني Raven.config().addPlugin().install() في بيئة الاختبار لأننا لم نرغب في إرسالهم إلى الحراسة.

المشكلة في ذلك هي أن raven-js لا تفعل الأشياء "بالطريقة الزاوية" مع الوحدات - وبدلاً من ذلك تسجل الوحدة النمطية ngRaven إذا اتصلت بـ Raven.config() باستخدام DSN.

تسجل الطريقة addPlugin() الوحدة النمطية الزاوية فقط إذا تم إعداد التكوين بشكل صحيح (على سبيل المثال ، باستخدام عنوان url محدد لـ DSN).

لإصلاح ذلك ، قمنا بعمل ذلك بحيث يتم تشغيل Raven.config().addPlugin().install() دائمًا حتى في مجموعة الاختبار الخاصة بنا ، ونستخدم عنوان URL العادي لـ DSN ثم نستخدم طريقة config.shouldSendCallback لحظر الإرسال إلى الحارس في بيئة الاختبار .

هذا يسمح لـ raven-js بتسجيل الوحدة الزاويّة بشكل صحيح.

امل ان يساعد!

نحن نفعل الشيء نفسه ، لكننا نمرر DSN مزيفًا بدلاً من ذلك (هذا لبيئة التطوير لدينا). شيء مثل https://[email protected]/1 يعمل بشكل جيد (يبدو أن الغراب يقوم ببعض الإنفاذ على خصائص عنوان URL ، لذلك يجب أن يكون اسم المستخدم موجودًا مع المسار).

الإغلاق بسبب الخمول الطويل. يحتوي هذا الخيط أيضًا على بعض الحلول فقط في حالة. لا تتردد في إعادة فتح هذه المشكلة إذا كانت لا تزال ذات صلة بأي شكل من الأشكال.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات