الحماية من حذف الصور المحسّنة في إضافات جوتنبرغ
من المعروف أن تطوير الإضافات الخاصة بـ Gutenberg يمكن أن يكون معقدًا بعض الشيء، خاصةً عند دمج عمليات تحسين الصور. يعتبر وجود صور محسّنة بجودة عالية أمرًا حيويًا، مما يعزز أداء الموقع وسرعته. ومع ذلك، تواجه العديد من الفرق المطورة عادة مشكلة مؤسفة، تتعلق بعمليات البناء التي تقوم بها أدوات مثل Webpack، التي تقوم بشكل افتراضي بحذف الملفات أثناء كل عملية بناء جديدة. هنا نسلط الضوء على كيفية منع عملية بناء Webpack من حذف الصور المحسّنة في إضافات Gutenberg المخصصة.
مشكلة الحذف المتكرر للصور
من خلال تجربة العديد من المبرمجين، نجد أنهم يواجهون مشكلة عند تنفيذ أوامر البناء باستخدام أدوات مثل wp-scripts. فعند كل عملية بناء جديدة، تعمل Webpack على تنظيف مجلدات المشروع، مما يؤدي إلى فقدان جميع الصور المحسّنة التي تم إنشاؤها. على سبيل المثال، تم استخدام حزمة sharp في برنامج Node.js مخصص لتوليد صور WebP المحسّنة، والتي يتم نسخها إلى الدلائل المناسبة ضمن مجلد البناء الخاص بالإضافة.
محاولات التغلب على المشكلة
خلال محاولة التعديل على إعدادات Webpack لمنع حذف مجلدات الصور، جرت بعض المحاولات الفاشلة. تمت تجربة استخدام CleanWebpackPlugin لتجنب إزالة المجلدات، ولكن للأسف لم تنجح هذه التعديلات. حتى عند استخدام النسخة المخصصة من @wordpress/scripts وقيام بتخصيص إعدادات Webpack، لم يتمكن المطورون من الحفاظ على تلك الملفات المحسّنة خلال خطوة التنظيف.
على سبيل المثال، تعديلات مثل "cleanOnceBeforeBuildPatterns: ["*/", "!assets/images/**"]" لم تؤثر كما نحجوا في بدائل أخرى. بل ظل النظام يقوم بحذف تلك الملفات المحسّنة دون سابق إنذار.
توصيات لتفادي حذف الصور المحسّنة
للنجاح في منع عملية بناء Webpack من حذف الصور المحسّنة، بعض التوصيات تتضمن تعديلات على إعدادات Webpack أو حتى التفكير في بدائل. أولًا، يمكنك استكشاف بعض طرق البناء المخصصة التي لا تعتمد على الأوامر الافتراضية لـ wp-scripts، والتي يمكن أن تعطيك مزيدًا من السيطرة على ما يحدث خلال عمليات البناء.
يمكن تجريب تنفيذ خطوة جديدة في عملية البناء بعد خطوة تنظيف Webpack، بحيث تعيد نسخ الصور المحسّنة بعد أن تتم إزالة الملفات السابقة. يبدو أن هذه الطريقة تفيد بشكل خاص لأولئك الذين ليس لديهم السيطرة الكاملة على إعدادات Webpack.
استنتاجات نهائية
بالتأكيد لا توجد مشكلة واحدة دون حل. مع التحديات التي يواجهها المطورون عند بناء إضافات Gutenberg، يعتبر العمل على تحسين سير العمل أمرًا محوريًا. المفتاح هنا هو معرفة كيفية التعديل على إعدادات العملية، سواء من خلال التعرف على أدوات جديدة أو تعديل الأساليب الحالية.
إن Preventing Webpack Build Process from Deleting Optimized Images in Custom Gutenberg Blocks Plugin هو موضوع يستحق الدراسة لكل مطور يشق طريقه نحو تطوير إضافات قوية ومُحسنّة. ومع المستجدات والتقنيات الحديثة في تطوير البرمجيات، لا بد من الابتكار والبحث عن الحلول لتفادي هذه المشكلات المتكررة.