প্রকল্প সম্পর্কে

# esm.sh আধুনিক ওয়েব ডেভেলপমেন্টের জন্য একটি নো-বিল্ড JavaScript CDN। ## সংক্ষিপ্ত বিবরণ esm.sh কোনো ইনস্টলেশন বা বিল্ড ধাপ ছাড়াই সরাসরি HTTP URL থেকে JavaScript মডিউল ইমপোর্ট করার সুযোগ দেয়। এটি সোর্স কোডকে সার্ভার সাইডে ব্রাউজার-সামঞ্জস্যপূর্ণ ES মডিউলে রূপান্তর করে, ফলাফল ক্যাশ করে এবং একটি গ্লোবাল Cloudflare CDN থেকে পরিবেশন করে। ## রেজিস্ট্রি সমর্থন - **NPM**: নাম, ভার্সন বা ট্যাগ দিয়ে যেকোনো প্যাকেজ ইমপোর্ট করুন - **JSR**: `/jsr/` দিয়ে শুরু হওয়া Deno-বান্ধব রেজিস্ট্রি - **GitHub**: `/gh/` প্রিফিক্স দিয়ে রিপোজিটরি থেকে সরাসরি ইমপোর্ট - **pkg.pr.new**: `/pr/` প্রিফিক্স দিয়ে 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 ইমপোর্ট**: 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