এগুলি ফাইল জুড়ে কোড বিভক্ত করার জন্য JavaScript এর দুটি মডিউল সিস্টেম।
ES Modules (ESM) — আধুনিক মান
// import / export, used in browsers and modern Node
import { sum } from ;
defaultThing ;
x = ;
() {};
এগুলি ফাইল জুড়ে কোড বিভক্ত করার জন্য JavaScript এর দুটি মডিউল সিস্টেম।
// import / export, used in browsers and modern Node
import { sum } from ;
defaultThing ;
x = ;
() {};
const { sum } = require("./math");
module.exports = { x: 1 };
| ES Modules | CommonJS | |
|---|---|---|
| বাক্যতত্ত্ব | import/export | require/module.exports |
| লোডিং | স্থিতিশীল, অ্যাসিঙ্ক | গতিশীল, সিঙ্ক্রোনাস |
| বিশ্লেষণযোগ্য | ✅ → tree-shaking | ❌ কঠিন |
| বাইন্ডিং | লাইভ (শুধুমাত্র পড়া) | অনুলিপি করা মান |
this শীর্ষে | undefined | module.exports |
স্থিতিশীল মানে ESM আমদানি পার্স সময়ে জানা যায়, যা বান্ডলারগুলিকে tree-shaking (অব্যবহৃত রপ্তানি ড্রপ করা) করতে দেয়। CommonJS require গতিশীল (আপনি শর্তসাপেক্ষে require করতে পারেন), তাই এটি সহজেই বিশ্লেষণ করা যায় না।
{ "type": "module" } // in package.json, or use the .mjs extension
আপনি CommonJS থেকে ESM-শুধু প্যাকেজ require() করতে পারবেন না; দুটি মিশ্রিত করা রুক্ষ প্রান্ত আছে। ESM আমদানিগুলি লাইভ বাইন্ডিং — যদি রপ্তানিকারক মান পরিবর্তন করে, আমদানিকারকরা নতুন মান দেখেন (CJS আপনাকে স্ন্যাপশট কপি দেয়)।
ESM হল ভবিষ্যত (ব্রাউজার-নেটিভ, tree-shakeable, শীর্ষ-স্তরের await)।
নতুন কোডের জন্য এটি পছন্দ করুন; CJS বুঝুন কারণ Node ইকোসিস্টেমের অনেক কিছু এখনও এটি ব্যবহার করে।
বিস্তারিত উত্তরসহ IT ইন্টারভিউ প্রশ্নের একটি লাইব্রেরি — জুনিয়র থেকে সিনিয়র পর্যন্ত।
দান করুন