عن المشروع
Dropzone هي مكتبة JavaScript تحوّل أي عنصر HTML إلى منطقة إسقاط: يمكن للمستخدمين سحب الملفات وإفلاتها عليها، وتعرض المكتبة معاينات الملفات وتقدم الرفع أثناء معالجة الرفع عبر XHR. المكتبة مكتوبة بلغة TypeScript وتتضمن تعريفات الأنواع الخاصة بها، لذا لا حاجة لحزمة @types منفصلة. يلاحظ README أن حزمة @types/dropzone القديمة توقفت عند الإصدار 5.7.9 وتصف واجهة برمجة التطبيقات v5، لذا يجب إزالتها إذا كانت موجودة.
التثبيت يتم عبر npm (npm install dropzone) أو pnpm، ويمكن استخدامه كوحدة ES6 أو وحدة CommonJS. للمشاريع التي لا تستخدم مدير حزم أو أداة تجميع، تتوفر ملفات مستقلة من unpkg، تعرض Dropzone كمتغير عام، بالإضافة إلى ورقة أنماط.
تشمل الميزات الموثقة: تصميم افتراضي جذاب؛ معاينات مصغرة للصور عبر استدعاء thumbnail(file, data)؛ دعم الشاشات عالية الدقة؛ ملفات متعددة ورفع متزامن؛ تحديثات التقدم؛ دعم الملفات الكبيرة عبر الرفع المجزأ؛ دعم رفع Amazon S3 Multipart؛ تخصيص كامل للمظهر عن طريق استبدال مستمعي الأحداث الافتراضيين؛ وتغيير حجم الصور في المتصفح قبل الرفع. يذكر README أن المكتبة مختبرة جيدًا.
المستودع هو monorepo يحتوي على المكتبة المنشورة على npm باسم dropzone (packages/dropzone)، والوثائق المبنية باستخدام Docusaurus (apps/docs)، والموقع الإلكتروني المبني باستخدام SvelteKit (apps/website). تشمل أوامر التطوير pnpm install و pnpm build و pnpm test و pnpm test:e2e و pnpm dev:docs و pnpm dev:website. أمر واحد pnpm build:site ينتج موقع GitHub Pages القابل للنشر في _site/، ليجمع الموقع الإلكتروني في الجذر والوثائق تحت /docs؛ ويشغل CI نفس السكربت.
لا يدعم Dropzone 6 متصفح Internet Explorer؛ ويُقترح الإصدار 5.9.3 لهذه الحاجة. يُوجَّه دعم المجتمع إلى GitHub Discussions أو Stack Overflow بوسم dropzone.js بدلاً من متتبع المشكلات، المخصص للإبلاغ عن الأخطاء. المشروع مرخص بموجب MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.