इस प्रोजेक्ट के बारे में

# esm.sh आधुनिक वेब डेवलपमेंट के लिए एक नो-बिल्ड JavaScript CDN। ## अवलोकन esm.sh JavaScript मॉड्यूल को बिना किसी इंस्टॉलेशन या बिल्ड चरण के सीधे HTTP URL से आयात करने की अनुमति देता है। यह स्रोत कोड को सर्वर साइड पर ब्राउज़र-संगत ES मॉड्यूल में रूपांतरित करता है, परिणामों को कैश करता है, और उन्हें वैश्विक Cloudflare CDN से सर्व करता है। ## रजिस्ट्री समर्थन - **NPM**: किसी भी पैकेज को नाम, संस्करण, या टैग द्वारा आयात करें - **JSR**: `/jsr/` से शुरू होने वाली Deno-अनुकूल रजिस्ट्री - **GitHub**: `/gh/` प्रीफ़िक्स के साथ रिपॉज़िटरी से सीधे आयात - **pkg.pr.new**: `/pr/` प्रीफ़िक्स के साथ PRs से प्रीव्यू बिल्ड ## मुख्य विशेषताएँ ### ज़ीरो-बिल्ड आयात ```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 आयात**: JS में CSS आयात करने वाले पैकेजों के लिए `?css` फ़्लैग - **Web Workers**: इंजेक्शन समर्थन के साथ वर्कर लोडिंग के लिए `?worker` क्वेरी - **Deno संगतता**: Node.js अंतर्निहित मॉड्यूल (fs, os, net, आदि) को रिज़ॉल्व करता है - **TypeScript समर्थन**: `X-TypeScript-Types` हेडर के माध्यम से स्वचालित टाइप परिभाषाएँ - **tsx स्क्रिप्ट**: HTML में सीधे TSX लिखने के लिए 1KB स्क्रिप्ट ### कैश पर्ज अद्यतन पैकेजों के लिए कैश किए गए बिल्ड रीफ़्रेश करें: - सटीक संस्करण तुरंत पुनर्निर्मित होते हैं - बेयर नाम अगली रिक्वेस्ट पर संस्करणों को पुनः रिज़ॉल्व करते हैं - प्रूफ़-ऑफ़-वर्क चैलेंज दुरुपयोग को रोकता है ### सेल्फ-होस्टिंग [होस्टिंग दस्तावेज़](./HOSTING.md) का पालन करते हुए अपना स्वयं का इंस्टेंस तैनात करें। ## सीमाएँ वर्तमान में Node.js या Bun रनटाइम्स द्वारा समर्थित नहीं है। ## लाइसेंस MIT