لا يمكنني تحويل الشرطة السفلية min مع Babel. أحتاجه لأنني ، باستخدام gulp ، أقوم بدمج جميع الملفات ثم معالجتها باستخدام babel ، ولكن مع تسطير أسفل السطر ، يؤدي ذلك إلى إرجاع خطأ.
يمكنك تجربتها هنا: https://babeljs.io/repl/# ؟ babili = false & Evaluation = true & lineWrap = false & presets = es2015
في الجزء السفلي من اللوحة اليمنى يظهر خطأ: "u غير محدد".
تظهر لي العبارة "Cannot read property '_' of undefined" ، وهي مختلفة ولكنها معطلة أيضًا.
ما هو إصدار Underscore الذي تستخدمه؟
أشك في أن هذا مرتبط بـ https://github.com/jashkenas/underscore/pull/2153 الذي تم إصلاحه بشكل رئيسي ، لكننا لم نشحن بعد إصدارًا يتضمنه.
يمكنك تجربتها باستخدام إصدار Underscore على المستوى الرئيسي (https://github.com/jashkenas/underscore/blob/master/underscore.js) ومعرفة ما إذا كان ذلك يحل المشكلة؟
اعلمني ماذا وجدت.
أنا أستخدم الإصدار 1.8.3 ، الأحدث. لسوء الحظ ، لا يمكنني استخدام الإصدار غير المصغر ، نظرًا لأن الطرق "تتطلب" غير مدعومة.
عمليات التصدير غير مدعومة في المتصفح ، فأنت بحاجة إلى بيئة Commonjs مثل node.js / io.js و browserify / webpack وما إلى ذلك
أين ترى الخطأ مع exports
؟ أرى هذه الرسالة عند استخدام موقع Babel لتحويلها ، لكن الكود يبدو جيدًا. بينما تشير الشرطة السفلية إلى المتغير exports
، فإنها تكتشف أولاً البيئة التي تستخدم فيها فقط exports
إذا وجدت نفسها تعمل في بيئة عقدة.
في الأساس ، قد يكون هذا "الخطأ" مجرد محاولة بابل جاهدة لتقديم المساعدة.
تم تحريره بعد مزيد من البحث
لقد لاحظت للتو ... السطر الأخير الفعلي للشرطة السفلية هو استدعاء نفسه بـ this
:
}.call(this));
ولكن بعد إنشاء Babel ، تم تغيير السطر الأخير لتمرير undefined
:
}.call(undefined));
يبدو أنه في وحدات ES6 ، من المفترض أن يكون $ # $ this
undefined
(على الرغم من أنني أواجه صعوبة في معالجة مواصفات ECMA الفعلية لتحديد ما إذا كان ذلك صحيحًا) لذلك يستبدلها Babel تلقائيًا.
StackOverflow: كيفية منع بابل من تحويل "هذا" إلى "غير محدد"
لقطة شاشة من مترجم Babel عبر الإنترنت:
أعتقد أن هذا تم إصلاحه من خلال هذا الالتزام: https://github.com/jashkenas/underscore/commit/8a847ba69e521b3d7f4faaa6c7c039bcb8e6497b منlexdene
ومع ذلك ، لا يتوفر إصدار رسمي يحتوي على هذا الإصلاح؛ الإصدار الحالي 1.8.3
لا يحتوي عليه ...
التعليق الأكثر فائدة
تظهر لي العبارة "Cannot read property '_' of undefined" ، وهي مختلفة ولكنها معطلة أيضًا.
ما هو إصدار Underscore الذي تستخدمه؟
أشك في أن هذا مرتبط بـ https://github.com/jashkenas/underscore/pull/2153 الذي تم إصلاحه بشكل رئيسي ، لكننا لم نشحن بعد إصدارًا يتضمنه.
يمكنك تجربتها باستخدام إصدار Underscore على المستوى الرئيسي (https://github.com/jashkenas/underscore/blob/master/underscore.js) ومعرفة ما إذا كان ذلك يحل المشكلة؟
اعلمني ماذا وجدت.