এর মূল অংশে, ওয়েবপ্যাকটি কেবল একটি ফাইল বান্ডার। খুব সাধারণ পরিস্থিতি বিবেচনা করে (কোনও কোড বিভাজন নেই), এর অর্থ কেবল নিম্নলিখিত ক্রিয়াগুলি (একটি উচ্চ স্তরের) হতে পারে:
- এন্ট্রি ফাইলটি সন্ধান করুন এবং এর সামগ্রীগুলি মেমরিতে লোড করুন
- সামগ্রীর মধ্যে নির্দিষ্ট পাঠ্যের সাথে মেলে এবং সেগুলি মূল্যায়ন করুন (যেমন @ ইমপোর্ট)
- পূর্ববর্তী মূল্যায়নের উপর নির্ভরশীলতাগুলি সন্ধান করুন এবং তাদের সাথে একই করুন
- তাদের সমস্ত স্মৃতিতে একটি বান্ডিল মধ্যে সেলাই
- ফাইল সিস্টেমে ফলাফল লিখুন
আপনি উপরের পদক্ষেপগুলি নিবিড়ভাবে পরীক্ষা করার সময়, এটি জাভা সংকলক (বা কোনও সংকলক) কী করে তা নিয়ে অনুরণিত হয়। অবশ্যই পার্থক্য রয়েছে তবে লোডার এবং প্লাগইনগুলি বোঝার ক্ষেত্রে সেগুলি গুরুত্বপূর্ণ নয়।
লোডার:
ওয়েবপ্যাক যে কোনও ফাইল টাইপ একসাথে বান্ডিল করার প্রতিশ্রুতি দেয় কারণ এখানে রয়েছে।
যেহেতু এর মূল ওয়েবপ্যাকটি কেবল জেএস ফাইলগুলি বান্ডিল করতে যথেষ্ট সক্ষম, তাই এই প্রতিশ্রুতিটির অর্থ হ'ল ওয়েবপ্যাক কোর টিমটি বিল্ড ফ্লোগুলি অন্তর্ভুক্ত করতে হয়েছিল যা বাহ্যিক কোডকে কোনও নির্দিষ্ট ফাইলের ধরণকে এমনভাবে রূপান্তর করতে দেয় যা ওয়েবপ্যাকটি ব্যবহার করতে পারে।
এই বাহ্যিক কোডগুলিকে লোডার বলা হয় এবং এগুলি সাধারণত উপরের 1 এবং 3 ধাপের সময় চালিত হয়। সুতরাং, যেহেতু এই লোডারগুলি চালানো দরকার সেই পর্যায়ে স্পষ্টতই, তাদের হুকের প্রয়োজন হয় না এবং তারা বিল্ড প্রক্রিয়াটিকেও প্রভাবিত করে না (যেহেতু বিল্ড বা বান্ডিলটি কেবলমাত্র 4 ধাপে ঘটে)।
সুতরাং লোডারগুলি সংকলনের জন্য মঞ্চ প্রস্তুত করে এবং সেগুলি ওয়েবপ্যাক সংকলকের নমনীয়তা বাড়িয়ে তোলে।
প্লাগইনস:
এখানে রয়েছে কারণ যদিও ওয়েবপ্যাকটি সরাসরি পরিবর্তনশীল আউটপুট প্রতিশ্রুতি দেয় না, বিশ্ব এটি চায় এবং ওয়েবপ্যাক এটির অনুমতি দেয় না।
যেহেতু এর মূল ওয়েবপ্যাকটি কেবল একটি বান্ডিলার এবং তবুও এটি করার জন্য বিভিন্ন পদক্ষেপ এবং উপ-পদক্ষেপগুলি অতিক্রম করে, তাই এই পদক্ষেপগুলি অতিরিক্ত কার্যকারিতা বাড়ানোর জন্য ব্যবহার করা যেতে পারে।
প্রোডাকশন বিল্ড প্রক্রিয়া (ফাইল সিস্টেমে মিনিফাইং এবং রাইটিং), যা ওয়েবপ্যাক সংকলকের আদি ক্ষমতা, উদাহরণস্বরূপ, এর মূল সামর্থ্য (যা কেবল বান্ডিলিং) এর এক্সটেনশন হিসাবে বিবেচনা করা যেতে পারে এবং একটি স্থানীয় প্লাগইন হিসাবে ধরা যেতে পারে। তারা যদি এটি সরবরাহ না করত তবে অন্য কেউ এটি করতেন।
উপরের নেটিভ প্লাগইনটির দিকে তাকালে এটি মনে হয় যেন ওয়েবপ্যাক বান্ডিলিং বা সংকলনটি মূল বান্ডিলিং প্রক্রিয়াতে বিভক্ত হতে পারে, সেই সাথে অনেকগুলি দেশীয় প্লাগইন প্রক্রিয়া যা আমরা বন্ধ বা কাস্টমাইজ বা প্রসারিত করতে পারি। এর অর্থ বহিরাগত কোডকে নির্দিষ্ট বিন্দুতে যেগুলি তারা বেছে নিতে পারে (হুক বলে ডাকা হয়) সেগুলি বেছে নিতে পারে join
প্লাগইনগুলি তাই আউটপুটকে প্রভাবিত করে এবং সাজানোর ওয়েবপ্যাক সংকলকটির সক্ষমতা বাড়িয়ে তোলে।