"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > الهجرة من chokidar إلى

الهجرة من chokidar إلى

تم النشر بتاريخ 2024-11-01
تصفح:532

الفوز الكبير مؤخرًا في مساحة e18e هو أن chokidar نشر إصدارًا جديدًا 4.x!

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

بالنسبة لأولئك منكم الذين لا يعرفون ما هو chokidar - فهو مراقب نظام ملفات مستخدم على نطاق واسع والذي يوفر فكرة مجردة عن الجزء العلوي من وظائف المراقبة الخاصة بالعقدة. على الأرجح، إنه موجود بالفعل في مكان ما في شجرة التبعية الخاصة بك!

الفرق في الرسم البياني للتبعية

في chokidar 3.x:

Migrating from chokidar  to

في chokidar 4.x:

Migrating from chokidar  to

التغييرات في 4.x

معظم التغييرات داخلية ولا ينبغي أن تؤثر على كيفية استخدامك للمكتبة، ولكنها ستحسن الأداء بشكل كبير.

بعض التغييرات الملحوظة:

  • تم إسقاط fsevents نظرًا لأن Node نفسها تتعامل مع التوافق عبر الأنظمة الأساسية بشكل جيد هذه الأيام
  • دعم وحدة ES
  • أنواع TypeScript محسنة
  • تحسينات مختلفة في الأداء
  • تمت إزالة الدعم العالمي

التغيير الرئيسي الوحيد من هذه القائمة والذي سوف يؤثر على المستخدمين هو إزالة الكرات الأرضية.

الحياة بدون جلوب

في chokidar 3.x، كان من الممكن مشاهدة الكرة الأرضية. على سبيل المثال، يمكننا مشاهدة src/*.ts وسيقوم chokidar بتوسيع النمط داخليًا لمشاهدة جميع ملفات TypeScript داخل src/.

في الإصدار 4.x، تمت إزالة هذه الوظيفة نظرًا لأنه يمكنك تحقيق نفس الشيء باستخدام المرشحات أو مكتبة الكرة الأرضية الخارجية.

مثال:


// تشوكيدار v3 watch('src/*.ts'); // شوكيدار الإصدار 4 (RegExp) شاهد ('src'، { // أي مسار لا يسبق نهايته `.ts` تم التجاهل: /(? احصائيات؟.isFile() && !path.endsWith('.ts') }); // شوكيدار الإصدار 4 (الكرة الأرضية) // ملاحظة: لن يؤدي هذا إلى مشاهدة الملفات المضافة حديثًا. هو - هي // سوف يشاهد فقط المجموعة الأولية من الملفات استيراد {glob} من 'tinyglobby'؛ watch(await glob(['src/*.ts']));
// chokidar v3
watch('src/*.ts');

// chokidar v4 (RegExp)
watch('src', {
  // any path whose end is not preceded by `.ts`
  ignored: /(?
    stats?.isFile() &&
    !path.endsWith('.ts')
});

// chokidar v4 (glob)
// NOTE: this will not watch newly added files. It
// will only watch the initial set of files
import {glob} from 'tinyglobby';
watch(await glob(['src/*.ts']));
في معظم الحالات، ربما يمكنك تجنب الحاجة إلى مكتبة شاملة واستخدام وظيفة التصفية أو RegExp بدلاً من ذلك (والتي ستكون أيضًا أسرع بكثير في كثير من الحالات).

تعليق

إذا قمت بالترقية وكان لديك أي تعليقات أو وجدت أي أخطاء، فنحن نحب أن نسمع منك عبر المشكلات.

يمكنك أيضًا ملاحظة أن العديد منا في e18e Discord يعملون بجد على ترحيل الحزم الشائعة من 3.x إلى 4.x.

بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/43081j/migrating-from-chokidar-3x-to-4x-5ab5؟1 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3