Grunt এর মূল কাজ হল টাস্ক অটোমেট করা, এবং এই কাজটি Task Handler এর মাধ্যমে সম্পন্ন হয়। Grunt-এ টাস্কগুলি Execution Process অনুসরণ করে কাজ করে। এই টিউটোরিয়ালে, আমরা Grunt এর টাস্ক হ্যান্ডলার এবং এক্সিকিউশন প্রক্রিয়া সম্পর্কে বিস্তারিত আলোচনা করব।
Grunt Task হ্যান্ডলার কী?
Grunt-এর Task Handler হলো একটি ফাংশন বা কোড ব্লক, যা Grunt টাস্ক পরিচালনা করে এবং টাস্কটি এক্সিকিউট করার জন্য নির্দেশনা প্রদান করে। যখন Grunt একটি টাস্ক চালানোর জন্য নির্দেশিত হয়, তখন সেই টাস্কটি তার কনফিগারেশন অনুসারে হ্যান্ডলারের মাধ্যমে কার্যকর হয়। টাস্ক হ্যান্ডলার মূলত Grunt এর কোড ব্লক যা নির্দিষ্ট কাজ সম্পাদন করে।
Grunt Execution প্রক্রিয়া
Grunt এর execution প্রক্রিয়া হল বিভিন্ন টাস্কের মাধ্যমে কোড কার্যকর করা। সাধারণত, Grunt শুরু হয় grunt.initConfig থেকে, যেখানে কনফিগারেশন এবং টাস্ক নির্ধারণ করা হয়। এরপর, Grunt টাস্কগুলো নির্দিষ্ট অনুসরণে এবং নির্ধারিত অর্ডারে এক্সিকিউট করে।
Grunt Execution প্রক্রিয়ার ধাপ
প্রথমে কনফিগারেশন লোড করা:
- Grunt ফাইলের মধ্যে প্রথমেই কনফিগারেশন সেট করা হয়। এখানে টাস্কের জন্য প্রয়োজনীয় প্লাগইন এবং তাদের কনফিগারেশন উল্লেখ করা হয়।
grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { options: { mangle: false }, dist: { files: { 'dist/output.min.js': ['src/input.js'] } } } });টাস্ক হ্যান্ডলার লোড করা:
- প্রতিটি টাস্কের জন্য নির্দিষ্ট প্লাগইন এবং হ্যান্ডলার লোড করা হয়। উদাহরণস্বরূপ,
grunt-contrib-uglifyপ্লাগইনটিuglifyটাস্ক পরিচালনার জন্য লোড করা হয়।
grunt.loadNpmTasks('grunt-contrib-uglify');- প্রতিটি টাস্কের জন্য নির্দিষ্ট প্লাগইন এবং হ্যান্ডলার লোড করা হয়। উদাহরণস্বরূপ,
টাস্ক রেজিস্টার করা:
grunt.registerTask()ফাংশনের মাধ্যমে, টাস্কের নাম এবং সেই টাস্কে যে কাজগুলি এক্সিকিউট হবে তা রেজিস্টার করা হয়।
grunt.registerTask('default', ['uglify']);টাস্ক এক্সিকিউট করা:
- যখন আপনি
gruntকমান্ড রান করেন, Grunt স্বয়ংক্রিয়ভাবে Default Task বা যেই টাস্ক নির্দেশনা দেওয়া হয়েছে, সেটি এক্সিকিউট করে। টাস্কের মধ্যে নির্দিষ্ট ফাইল বা কোড এক্সিকিউট করা হয়, যেমন মিনিফিকেশন, CSS কম্পাইলিং, লিন্টিং ইত্যাদি।
grunt- যখন আপনি
টাস্ক এক্সিকিউশনের প্রক্রিয়া
Grunt এর টাস্ক এক্সিকিউশনের প্রক্রিয়া সাধারণত কয়েকটি ধাপে সম্পন্ন হয়:
- টাস্কের কনফিগারেশন লোড: প্রথমে
grunt.initConfig()ফাংশনে নির্দিষ্ট কনফিগারেশন লোড হয়, যেখানে টাস্কের জন্য প্রয়োজনীয় ফাইল এবং ফোল্ডার নির্দেশনা দেওয়া হয়। - টাস্ক প্লাগইন লোড:
grunt.loadNpmTasks()ফাংশন ব্যবহার করে প্লাগইন লোড করা হয়, যা টাস্ক পরিচালনা করবে। - টাস্ক রেজিস্টার এবং এক্সিকিউশন:
grunt.registerTask()এর মাধ্যমে টাস্ক রেজিস্টার করা হয়। এই টাস্ক তখন গ্রান্ট এক্সিকিউট করার সময় সম্পন্ন হয়। - টাস্কের ফলাফল: এক্সিকিউটেড টাস্কের পর ফলাফল যেমন, কম্পাইল করা ফাইল, মিনিফিকেশন, কোড লিন্টিং ফলাফল ইত্যাদি প্রিন্ট করা হয় অথবা সেভ করা হয় নির্দিষ্ট ফোল্ডারে।
উদাহরণ
এখানে একটি Grunt টাস্ক এক্সিকিউশন প্রক্রিয়া দেখানো হচ্ছে, যেখানে একটি JavaScript ফাইল মিনিফিকেশন করা হচ্ছে:
module.exports = function(grunt) {
// প্লাগইন লোড
grunt.loadNpmTasks('grunt-contrib-uglify');
// কনফিগারেশন সেট করা
grunt.initConfig({
uglify: {
options: {
mangle: false
},
dist: {
files: {
'dist/output.min.js': ['src/input.js']
}
}
}
});
// Default Task
grunt.registerTask('default', ['uglify']);
};
এখানে:
uglifyটাস্ক গ্রান্টের মাধ্যমে JavaScript ফাইল মিনিফাই করার কাজ করছে।grunt-contrib-uglifyপ্লাগইনটি ব্যবহার করেsrc/input.jsফাইলটি মিনিফাই করেdist/output.min.jsএ সেভ করা হচ্ছে।
Grunt টাস্ক সিকোয়েন্স
Grunt টাস্কগুলো নির্দিষ্ট সিকোয়েন্সে এক্সিকিউট হয়, যেমন:
- প্রথমে কনফিগারেশন লোড হয়।
- এরপর প্লাগইন লোড হয়।
- তারপর রেজিস্টার করা টাস্ক এক্সিকিউট হয়।
- অবশেষে টাস্কের ফলাফল (যেমন মিনিফায়েড ফাইল) তৈরি হয়।
এইভাবে Grunt এর টাস্ক হ্যান্ডলার এবং এক্সিকিউশন প্রক্রিয়া কাজ করে, যা আপনার ওয়েব ডেভেলপমেন্ট প্রোজেক্টে বিভিন্ন টাস্ককে অটোমেট এবং দ্রুত করতে সাহায্য করে।