هل تريد طلب ميزة أو الإبلاغ عن خطأ ؟
ميزة
ما هو السلوك الحالي؟
يتم عرض المكتبة كوحدة نمطية CommonJS.
ما هو السلوك المتوقع؟
تتعرض المكتبة كوحدة ES6.
لماذا اريد هذا السلوك؟
أريد فقط شحن مكتبة raven-js في الأيام القليلة الأولى بعد إطلاق ميزة جديدة. بعد ذلك ، أريد التخلص من مكتبة raven-js سعة 20 كيلو بايت لتحسين أداء تطبيقي.
لإزالة مكتبة raven-js سعة 20 كيلوبايت ، أريد استخدام ميزة webpack "es6-tree-shaking / uglify-js-dead-code-remove".
import { Raven, RavenVue } from './es6/raven';
if (FLAGS.SENTRY_ENABLE) {
Raven.config(CONFIG.SENTRY_DSN).addPlugin(RavenVue, Vue).install();
}
هذا ممكن فقط عند استخدام وحدات ES6.
أي خطط للتحويل إلى وحدات es؟ هل تقبل العلاقات العامة؟
شكرا لتعليقاتك!
يمكنني إضافة تحسين واحد للحل المقترح:
إذا كانت التعليمات البرمجية المصدر تستخدم عمليات استيراد وتصدير es6 ، فمن الممكن استخدام المفتاح module
في package.json
للإشارة إلى نقطة الإدخال الرئيسية es6 للحزمة { "module": "src/raven.js" }
. انظر: https://github.com/rollup/rollup/wiki/pkg.module
بهذه الطريقة ، لا يزال بإمكان المفتاح main
الإشارة إلى إصدار مجمع متوافق مع CommonJS من الحزمة { "main": "dist/raven.js" }
لكن الأشخاص الذين يستخدمون أدوات مثل حزمة الويب أو مجموعة التحديثات يمكنهم استيرادها بالطريقة المعتادة import Raven from 'raven-js'
والذي يتم حله تلقائيًا إلى إصدار ES6 من الملف.
إنه بالتأكيد شيء أريد أن أفعله قريبًا.
ومع ذلك ، سيتطلب الأمر منا على الأرجح الترحيل إلى webpack / rollup والتأكد من أن الحزمة التي نقدمها لا تزال لا تتجاوز ميزانيتنا البالغة 10 كيلوبايت.
لا أستطيع أن أقول متى سيتم شحنها ، لأن هناك بعض الأشياء الأخرى التي أعمل عليها الآن أيضًا.
kamilogorek كنت أرغب دائمًا في إجراء إعداد بناء باستخدام rollup.js. لذلك استغرقت بعض الوقت وقمت بتغيير البنية من Browserify إلى Rollup with Babel: # 1152
هذه هي الخطوة الأولى اللازمة لتحويل المصدر إلى وحدات ES.
سيكون رائعًا إذا كان بإمكانك مراجعة هذا العلاقات العامة. : octocat:
التعليق الأكثر فائدة
إنه بالتأكيد شيء أريد أن أفعله قريبًا.
ومع ذلك ، سيتطلب الأمر منا على الأرجح الترحيل إلى webpack / rollup والتأكد من أن الحزمة التي نقدمها لا تزال لا تتجاوز ميزانيتنا البالغة 10 كيلوبايت.
لا أستطيع أن أقول متى سيتم شحنها ، لأن هناك بعض الأشياء الأخرى التي أعمل عليها الآن أيضًا.