عن المشروع

# esm.sh شبكة توصيل محتوى (CDN) لجافا سكريبت بدون خطوة بناء لتطوير الويب الحديث. ## نظرة عامة يتيح esm.sh استيراد وحدات جافا سكريبت مباشرة من روابط HTTP دون أي خطوات تثبيت أو بناء. يقوم بتحويل الكود المصدري إلى وحدات ES متوافقة مع المتصفح على جانب الخادم، ويخزن النتائج مؤقتًا، ويقدمها من شبكة Cloudflare العالمية. ## دعم السجلات - **NPM**: استيراد أي حزمة بالاسم أو الإصدار أو العلامة - **JSR**: سجل مناسب لـ Deno يبدأ بـ `/jsr/` - **GitHub**: استيراد مباشر من المستودعات ببادئة `/gh/` - **pkg.pr.new**: إصدارات معاينة من طلبات السحب ببادئة `/pr/` ## الميزات الرئيسية ### استيراد بدون بناء ```js import React from "https://esm.sh/react@19.2.4"; import { encodeBase64 } from "https://esm.sh/jsr/@std/encoding@1.0.0/base64"; ``` ### تحويل المصدر يحول تلقائيًا ملفات `.ts(x)` و`.vue` و`.svelte` في المتصفح دون أدوات بناء. ### إدارة التبعيات حدد إصدارات التبعيات باستخدام معاملات الاستعلام: ```js import useSWR from "https://esm.sh/swr?deps=react@18.3.1"; ``` أسماء مستعارة للتبعيات: ```js import useSWR from "https://esm.sh/swr?alias=react:preact/compat"; ``` ### خيارات التجميع - `?bundle=false` - تعطيل التجميع الافتراضي - `?standalone` - تجميع جميع التبعيات في ملف واحد - `?raw` - تقديم الكود المصدري دون تحويل - `?exports=foo,bar` - تقليل الشجرة إلى تصديرات محددة ### إعداد البناء التحكم في أهداف وخيارات البناء: ```js // بناء للتطوير import React from "https://esm.sh/react?dev"; // تحديد الهدف import React from "https://esm.sh/react?target=es2022"; // خيارات ESBuild import foo from "https://esm.sh/foo?conditions=custom1,custom2"; import foo from "https://esm.sh/foo?keep-names"; ``` ### التكامل مع خرائط الاستيراد يعمل مع خرائط استيراد HTML لحل المعرفات البسيطة: ```html <script type="importmap"> { "imports": { "react": "https://esm.sh/react@19.2.4" } } </script> ``` استخدم `?external` أو بادئة `*` لإبقاء الاستيرادات كمعرفات بسيطة لحلها في المتصفح. ### ميزات إضافية - **استيراد CSS**: علامة `?css` للحزم التي تستورد CSS في JS - **العاملون (Web Workers)**: استعلام `?worker` لتحميل العاملين مع دعم الحقن - **توافق Deno**: يحل وحدات Node.js المدمجة (fs، os، net، إلخ) - **دعم TypeScript**: تعريفات أنواع تلقائية عبر ترويسة `X-TypeScript-Types` - **سكربت tsx**: سكربت بحجم 1KB لكتابة TSX مباشرة في HTML ### تنظيف الذاكرة المؤقتة تحديث البناءات المخزنة للحزم المحدثة: - الإصدارات الدقيقة تُعاد بناؤها فورًا - الأسماء البسيطة تُعيد حل الإصدارات عند الطلب التالي - تحدي إثبات العمل يمنع إساءة الاستخدام ### الاستضافة الذاتية انشر نسختك الخاصة باتباع [توثيق الاستضافة](./HOSTING.md). ## القيود غير مدعوم حاليًا في بيئات Node.js أو Bun. ## الترخيص MIT