(ES Modules দিয়ে কোডকে পুনরায় ব্যবহারযোগ্য ও রক্ষণাবেক্ষণযোগ্য ব্লকে সংগঠিত করা)
মডিউল আপনাকে আপনার কোড একাধিক ফাইলে ভাগ করতে দেয়, যা আপনার কোডবেস পরিষ্কার ও সংগঠিত রাখে। প্রতিটি ফাইল ভেরিয়েবল, ফাংশন বা ক্লাস এক্সপোর্ট করতে পারে, এবং অন্য ফাইল সেগুলো ইমপোর্ট করতে পারে।
এই মডুলার পদ্ধতি সাহায্য করে:
ব্রাউজারে মডিউল ব্যবহার করতে, আপনার <script> ট্যাগে type="module" যোগ করুন:
<script type="module" src="main.js"></script>আপনি একটি মডিউল ফাইল থেকে ফাংশন, ভেরিয়েবল বা ক্লাস এক্সপোর্ট করতে পারেন।
// ফাইল: mathUtils.js
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;আপনি ঘোষণার পরেও এক্সপোর্ট করতে পারেন:
const multiply = (a, b) => a * b;
export { multiply };// ফাইল: main.js
import { add, subtract } from './mathUtils.js';
console.log(add(5, 3)); // 8
console.log(subtract(5, 3)); // 2আপনি ইমপোর্টকে অ্যালিয়াসও দিতে পারেন:
import { add as sum } from './mathUtils.js';একটি মডিউলে একটি মাত্র ডিফল্ট এক্সপোর্ট থাকতে পারে।
// ফাইল: greet.js
export default function greet(name) {
console.log(`Hello, ${name}`);
}একটি ডিফল্ট এক্সপোর্ট ইমপোর্ট করা:
import greet from './greet.js';
greet('Alice'); // Hello, Alice// ফাইল: utils.js
export const log = msg => console.log(msg);
export default function sayHi() {
console.log("Hi!");
}import sayHi, { log } from './utils.js';আপনি অন্য একটি মডিউল থেকে সবকিছু পুনরায় এক্সপোর্ট করতে পারেন:
// ফাইল: allUtils.js
export * from './mathUtils.js';// ফাইল: main.js
import * as math from './mathUtils.js';
console.log(math.add(2, 3)); // 5মডিউল ফাইলে আপনার "use strict" লেখার দরকার নেই — এগুলো স্বয়ংক্রিয়ভাবে স্ট্রিক্ট মোডে চলে।
মডিউলের ভেরিয়েবল সেই মডিউলের জন্য local। এগুলো গ্লোবাল স্কোপে লিক হয় না।
Live Server বা http-server) দিয়ে ফাইল সার্ভ করতে হবে — নাহলে আপনি CORS বা লোডিং এরর পেতে পারেন।.mjs এক্সটেনশন ব্যবহার করুন বা package.json-এ "type": "module" সেট করুন।export এবং import ব্যবহার করুন।math.js ফাইল তৈরি করুন এবং add, subtract, multiply, divide এক্সপোর্ট করুন।main.js ফাইল তৈরি করুন যা ওই সব ফাংশন ইমপোর্ট করে ব্যবহার করে।greet() ফাংশনের জন্য ডিফল্ট এক্সপোর্ট ব্যবহার করুন।import * as সিনট্যাক্স ব্যবহার করুন।