RequireJS-এ require.config() ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের জন্য কনফিগারেশন সেট করতে পারেন। এই কনফিগারেশন ফাংশনটি আপনাকে RequireJS এর কার্যকারিতা কাস্টমাইজ করতে সাহায্য করে, যেমন মডিউলগুলির পথ (paths), ডিপেনডেন্সি, শিরোনাম, এবং অন্যান্য সেটিংস।
require.config() ব্যবহার করে কনফিগারেশন সেট করা
require.config() একটি ফাংশন যা RequireJS-এর কনফিগারেশন সেট করতে ব্যবহৃত হয়। এটি সাধারণত অ্যাপ্লিকেশন শুরুতে কল করা হয়, এবং আপনি এতে বিভিন্ন বিকল্প সেট করতে পারেন, যেমন মডিউলগুলির পাথ, ডিপেনডেন্সি, শিরোনাম, এবং সিঙ্ক্রোনাস বা অ্যাসিঙ্ক্রোনাস লোডিংয়ের জন্য অপশনস।
require.config() এর মূল ব্যবহার:
- মডিউল পাথ কনফিগারেশন (Module Path Configuration): আপনি
pathsবিকল্প ব্যবহার করে মডিউলগুলির অবস্থান বা পাথ নির্দিষ্ট করতে পারেন। এটি আপনাকে আপনার মডিউলগুলির জন্য কাস্টম পাথ ঠিক করতে সাহায্য করে। - ডিপেনডেন্সি ম্যানেজমেন্ট (Dependency Management):
shimব্যবহার করে আপনি এমন স্ক্রিপ্টগুলির জন্য ডিপেনডেন্সি নির্ধারণ করতে পারেন, যা AMD স্টাইলের মডিউল নয়। - প্যাকেজ কনফিগারেশন (Package Configuration):
packagesঅপশনটি ব্যবহার করে আপনি কোডকে গ্রুপ করতে পারেন এবং একটি প্যাকেজে মডিউলগুলিকে একত্রে রেখে ব্যবহারের জন্য সহজ করে তুলতে পারেন। - অপ্টিমাইজেশন (Optimization): অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় স্ক্রিপ্টগুলোকে একত্রিত করে
optimizeঅপশন ব্যবহার করতে পারেন, যার মাধ্যমে কোড মিনিফাই করা এবং কম্বাইন করা সম্ভব হয়।
উদাহরণ: require.config() ব্যবহার করে কনফিগারেশন
1. Paths কনফিগারেশন:
আমরা paths ব্যবহার করে মডিউলগুলির অবস্থান নির্ধারণ করব। এটি আমাদের মডিউলগুলির জন্য সংক্ষিপ্ত নাম বা নির্দিষ্ট পাথ প্রদান করতে সাহায্য করে।
// config.js
require.config({
paths: {
'jquery': 'https://code.jquery.com/jquery-3.6.0.min', // CDN থেকে jQuery ব্যবহার
'underscore': 'libs/underscore', // লোকাল ফোল্ডারে Underscore.js
'app': 'scripts/app' // স্থানীয় অ্যাপ্লিকেশন স্ক্রিপ্ট
}
});
// app.js
require(['jquery', 'underscore', 'app'], function($, _, app) {
console.log('jQuery:', $);
console.log('Underscore:', _);
app.initialize();
});
এখানে, paths ব্যবহার করে আমরা jquery, underscore, এবং app মডিউলের পাথ নির্ধারণ করেছি। এখন আমরা শুধু তাদের শর্টনেম দিয়ে স্ক্রিপ্ট লোড করতে পারব, এবং RequireJS সেগুলিকে যথাযথ অবস্থান থেকে লোড করবে।
2. Shim কনফিগারেশন:
যদি আপনি কোনও লাইব্রেরি ব্যবহার করেন যা AMD স্টাইল অনুসরণ করে না (যেমন, jQuery প্লাগইন), তবে আপনি shim ব্যবহার করে সেই স্ক্রিপ্টগুলির জন্য ডিপেনডেন্সি ও এক্সপোজড গ্লোবাল ভ্যারিয়েবল সেট করতে পারেন।
// config.js
require.config({
paths: {
'jquery': 'https://code.jquery.com/jquery-3.6.0.min',
'bootstrap': 'libs/bootstrap.min'
},
shim: {
'bootstrap': {
deps: ['jquery'], // Bootstrap jQuery এর উপর নির্ভরশীল
exports: '$.fn.tooltip' // যে গ্লোবাল ভ্যারিয়েবল এক্সপোজ করা হবে
}
}
});
// app.js
require(['jquery', 'bootstrap'], function($) {
$(document).ready(function() {
$('[data-toggle="tooltip"]').tooltip();
});
});
এখানে, shim ব্যবহার করা হয়েছে যাতে bootstrap মডিউলটি jquery ডিপেন্ডেন্সি লোড করার পরে লোড হয়। এটি নিশ্চিত করবে যে প্রথমে jquery লোড হবে, তারপর bootstrap লোড হবে।
3. Packages কনফিগারেশন:
packages ব্যবহার করে আপনি মডিউলগুলিকে একটি নির্দিষ্ট প্যাকেজে গ্রুপ করতে পারেন, যা অ্যাপ্লিকেশনের জন্য আরও পরিষ্কার এবং সুসংগঠিত কোড তৈরি করতে সাহায্য করবে।
// config.js
require.config({
packages: [
{
name: 'myapp',
location: 'scripts',
main: 'main' // 'main.js' ফাইলটি প্যাকেজের প্রধান মডিউল
}
]
});
// app.js
require(['myapp'], function(myapp) {
myapp.start();
});
এখানে, myapp প্যাকেজটি scripts ফোল্ডারে রাখা হয়েছে, এবং main.js ফাইলটি প্যাকেজের প্রধান মডিউল হিসেবে ব্যবহার করা হয়েছে।
4. Optimize কোডের জন্য কনফিগারেশন:
RequireJS আপনাকে অ্যাপ্লিকেশনের কোড কম্বাইন এবং মিনিফাই করার জন্য optimize অপশন প্রদান করে। এটি প্রয়োজনীয় স্ক্রিপ্টগুলোকে একত্রিত করে এবং সেগুলোর আকার ছোট করতে সাহায্য করে।
// r.js (RequireJS Optimization config)
({
baseUrl: 'scripts',
name: 'main', // মূল ফাইল
out: 'build/main.min.js', // আউটপুট ফাইল
optimize: 'uglify2', // কোড মিনিফাই করার জন্য
paths: {
'jquery': 'libs/jquery.min'
}
})
এটি main.js স্ক্রিপ্টটি মিনিফাই করবে এবং build/main.min.js আউটপুটে রূপান্তর করবে। optimize অপশনটি কোডকে সঙ্কুচিত করে অ্যাপ্লিকেশন দ্রুত লোড হতে সাহায্য করবে।
সারসংক্ষেপ:
require.config() ফাংশনটি ব্যবহার করে আপনি আপনার RequireJS অ্যাপ্লিকেশনের কনফিগারেশন সেট করতে পারেন, যেমন মডিউলগুলির পাথ, ডিপেনডেন্সি ম্যানেজমেন্ট, প্যাকেজ কনফিগারেশন, এবং কোড অপটিমাইজেশন। এটি আপনাকে মডিউলগুলিকে সঠিকভাবে লোড এবং ব্যবহার করতে সহায়তা করে, এবং অ্যাপ্লিকেশনকে আরও কার্যকরী ও দ্রুত তৈরি করতে সাহায্য করে।
Read more