Gulp-এ টাস্কের অ্যাসিনক্রোনিটি
আপনার বুঝতে হবে যে সমস্ত Gulp টাস্ক - অ্যাসিনক্রোনাস। এটি কী বোঝায়, আসুন একটি উদাহরণ দিয়ে দেখি। ধরুন একটি পাবলিক টাস্কের ভিতরে দুটি প্রাইভেট টাস্ক কল করা হয়:
function taskD(cb) {
task1(cb);
task2(cb);
cb();
}
অ্যাসিনক্রোনিটি মানে হল যে task2 টাস্কটি
task1 টাস্কটির সম্পূর্ণ হওয়ার জন্য
অপেক্ষা করবে না, বরং এর সাথে সমান্তরালভাবে
নির্বাহ করা হবে।
আসুন একটি আরও ব্যবহারিক উদাহরণ নিয়ে চিন্তা করি। ধরুন প্রথম টাস্কটি LESS কে CSS-এ রূপান্তর করে, এবং দ্বিতীয় টাস্কটি - ফলাফল CSS কে মিনিমাইজ করে।
এমন ক্ষেত্রে আমরা একটি সমস্যার সম্মুখীন হব: কারণ LESS কম্পাইলেশনের ফলাফল CSS ফাইলে আসার আগেই CSS ফাইলটি মিনিমাইজ করা যাবে না!
যাইহোক, যদি টাস্কগুলি সিনক্রোনাসভাবে নির্বাহ হত - একটি after another sequentially, আমরা অন্য একটি সমস্যার সম্মুখীন হতাম: যে টাস্কগুলি সমান্তরালভাবে নির্বাহ করা যেত, সেগুলি একের পর এক নির্বাহ হয়ে Gulp-এর কাজের গতি কমিয়ে দিত। আসুন এটিও একটি উদাহরণ দিয়ে চিন্তা করি।
ধরুন প্রথম টাস্কটি CSS ফাইলগুলি মিনিমাইজ করে, এবং দ্বিতীয় টাস্কটি - JavaScript ফাইলগুলি মিনিমাইজ করে। স্পষ্টতই, এই দুটি অসম্পর্কিত অপারেশন একই সাথে করা যেতে পারে।
সৌভাগ্যবশত, Gulp এমন টুলস প্রদান করে যা স্পষ্টভাবে নির্দেশ করতে দেয় যে কোন টাস্কগুলি সমান্তরালভাবে নির্বাহ করা উচিত এবং কোনগুলি - অনুক্রমিকভাবে। এই টুলসগুলি আমরা পরবর্তী পাঠে আলোচনা করব।
দুটি টাস্কের একটি উদাহরণ দিন, যেগুলি কেবলমাত্র অনুক্রমিকভাবে নির্বাহ করা উচিত।
দুটি টাস্কের একটি উদাহরণ দিন, যেগুলি কেবলমাত্র সমান্তরালভাবে নির্বাহ করা উচিত।