ওয়েবপ্যাক লোডার বনাম প্লাগইন; পার্থক্য কি?


108

ওয়েবপ্যাকে লোডার এবং প্লাগইনগুলির মধ্যে পার্থক্য কী?

প্লাগ-ইন ডকুমেন্টেশন শুধু বলে:

ওয়েবপ্যাকের বান্ডিলগুলির সাথে সম্পর্কিত কার্যকারিতা যুক্ত করতে প্লাগইনগুলি ব্যবহার করুন।

আমি জানি যে বাবেল jsx / es2015 রূপান্তরগুলির জন্য একটি লোডার ব্যবহার করে তবে এটি অন্য সাধারণ কাজের মতো দেখায় (উদাহরণস্বরূপ কপি-ওয়েবপ্যাক-প্লাগইন) প্লাগইনগুলি ব্যবহার করুন।


4
লোডার জেএস চিহ্নিতযোগ্য ফাইলগুলিতে রূপান্তরিত করবে (এবং রূপান্তরের সময় কিছু কাজ করবে), প্লাগইনগুলি লোডার আউটপুটটিতে তাদের যা প্রয়োজন তা করতে পারে।
ডেভিড গুয়ান

উত্তর:


64

আপনি যখন আপনার কোডটিতে পছন্দ require("my-loader!./my-awesome-module")করেন তখন লোডাররা ভার্চুয়ালি কোনও ফাইল ফর্ম্যাটের প্রাক প্রসেসিং রূপান্তর করে । প্লাগিনগুলির সাথে তুলনা করলে এগুলি বেশ সহজ কারণ তারা (ক) ওয়েবপ্যাকটিতে কেবল একটি একক ফাংশন প্রকাশ করে এবং (খ) প্রকৃত বিল্ড প্রক্রিয়াটিকে প্রভাবিত করতে সক্ষম হয় না।

অন্যদিকে প্লাগইনগুলি গভীরভাবে ওয়েবপ্যাকের সাথে সংহত করতে পারে কারণ তারা ওয়েবপ্যাকগুলি বিল্ডিং সিস্টেমের মধ্যে হুকগুলি নিবন্ধন করতে পারে এবং সংকলকটিকে অ্যাক্সেস (এবং সংশোধন) করতে পারে এবং এটি কীভাবে কাজ করে তত সংকলন করে। অতএব, তারা আরও শক্তিশালী, তবে বজায় রাখা আরও শক্ত।


লোডার কেন ওয়েবপ্যাকের সাথে গভীরভাবে সংহত হতে পারে না?
নিতিন

@ নিতিনটাইয়াগি কারণ প্লাগইনগুলির কাজ শুরু হয়েছে। লোডারগুলির উদ্দেশ্যটি সহজ হওয়া।
6:39

161

পরিপূরক এবং সহজ উত্তর যুক্ত করা।

লোডার:

লোডার পৃথক ফাইল পর্যায়ে কাজ করার সময় বা আগে বান্ডিল উৎপন্ন হয়।

প্লাগইনস:

প্লাগইনগুলি বান্ডিল বা খণ্ড স্তরে কাজ করে এবং সাধারণত বান্ডিল উত্পাদন প্রক্রিয়া শেষে কাজ করে। প্লাগইনগুলি নিজেরাই কীভাবে বান্ডিল তৈরি হয় তাও পরিবর্তন করতে পারে। প্লাগইনগুলির লোডারের চেয়ে আরও শক্তিশালী নিয়ন্ত্রণ রয়েছে।

উদাহরণস্বরূপ আপনি নীচের চিত্রটিতে পরিষ্কারভাবে দেখতে পারবেন যেখানে লোডাররা কাজ করছে এবং প্লাগইনগুলি কোথায় কাজ করছে -

এখানে চিত্র বর্ণনা লিখুন তথ্যসূত্র: নিবন্ধ এবং চিত্র


38
সাবাশ! দুটি সহজ বাক্য এবং আমি এখন পার্থক্যটি বুঝতে পারি। দয়া করে এখন পুরো ওয়েব প্যাক ডক্স লাইব্রেরির পুনরায় লেখার জন্য এগিয়ে যান কারণ এটি একেবারে বোধগম্য জিব্বারিশ।
রিজম

19

এর মূল অংশে, ওয়েবপ্যাকটি কেবল একটি ফাইল বান্ডার। খুব সাধারণ পরিস্থিতি বিবেচনা করে (কোনও কোড বিভাজন নেই), এর অর্থ কেবল নিম্নলিখিত ক্রিয়াগুলি (একটি উচ্চ স্তরের) হতে পারে:

  1. এন্ট্রি ফাইলটি সন্ধান করুন এবং এর সামগ্রীগুলি মেমরিতে লোড করুন
  2. সামগ্রীর মধ্যে নির্দিষ্ট পাঠ্যের সাথে মেলে এবং সেগুলি মূল্যায়ন করুন (যেমন @ ইমপোর্ট)
  3. পূর্ববর্তী মূল্যায়নের উপর নির্ভরশীলতাগুলি সন্ধান করুন এবং তাদের সাথে একই করুন
  4. তাদের সমস্ত স্মৃতিতে একটি বান্ডিল মধ্যে সেলাই
  5. ফাইল সিস্টেমে ফলাফল লিখুন

আপনি উপরের পদক্ষেপগুলি নিবিড়ভাবে পরীক্ষা করার সময়, এটি জাভা সংকলক (বা কোনও সংকলক) কী করে তা নিয়ে অনুরণিত হয়। অবশ্যই পার্থক্য রয়েছে তবে লোডার এবং প্লাগইনগুলি বোঝার ক্ষেত্রে সেগুলি গুরুত্বপূর্ণ নয়।


লোডার:

ওয়েবপ্যাক যে কোনও ফাইল টাইপ একসাথে বান্ডিল করার প্রতিশ্রুতি দেয় কারণ এখানে রয়েছে।

যেহেতু এর মূল ওয়েবপ্যাকটি কেবল জেএস ফাইলগুলি বান্ডিল করতে যথেষ্ট সক্ষম, তাই এই প্রতিশ্রুতিটির অর্থ হ'ল ওয়েবপ্যাক কোর টিমটি বিল্ড ফ্লোগুলি অন্তর্ভুক্ত করতে হয়েছিল যা বাহ্যিক কোডকে কোনও নির্দিষ্ট ফাইলের ধরণকে এমনভাবে রূপান্তর করতে দেয় যা ওয়েবপ্যাকটি ব্যবহার করতে পারে।

এই বাহ্যিক কোডগুলিকে লোডার বলা হয় এবং এগুলি সাধারণত উপরের 1 এবং 3 ধাপের সময় চালিত হয়। সুতরাং, যেহেতু এই লোডারগুলি চালানো দরকার সেই পর্যায়ে স্পষ্টতই, তাদের হুকের প্রয়োজন হয় না এবং তারা বিল্ড প্রক্রিয়াটিকেও প্রভাবিত করে না (যেহেতু বিল্ড বা বান্ডিলটি কেবলমাত্র 4 ধাপে ঘটে)।

সুতরাং লোডারগুলি সংকলনের জন্য মঞ্চ প্রস্তুত করে এবং সেগুলি ওয়েবপ্যাক সংকলকের নমনীয়তা বাড়িয়ে তোলে।


প্লাগইনস:

এখানে রয়েছে কারণ যদিও ওয়েবপ্যাকটি সরাসরি পরিবর্তনশীল আউটপুট প্রতিশ্রুতি দেয় না, বিশ্ব এটি চায় এবং ওয়েবপ্যাক এটির অনুমতি দেয় না।

যেহেতু এর মূল ওয়েবপ্যাকটি কেবল একটি বান্ডিলার এবং তবুও এটি করার জন্য বিভিন্ন পদক্ষেপ এবং উপ-পদক্ষেপগুলি অতিক্রম করে, তাই এই পদক্ষেপগুলি অতিরিক্ত কার্যকারিতা বাড়ানোর জন্য ব্যবহার করা যেতে পারে।

প্রোডাকশন বিল্ড প্রক্রিয়া (ফাইল সিস্টেমে মিনিফাইং এবং রাইটিং), যা ওয়েবপ্যাক সংকলকের আদি ক্ষমতা, উদাহরণস্বরূপ, এর মূল সামর্থ্য (যা কেবল বান্ডিলিং) এর এক্সটেনশন হিসাবে বিবেচনা করা যেতে পারে এবং একটি স্থানীয় প্লাগইন হিসাবে ধরা যেতে পারে। তারা যদি এটি সরবরাহ না করত তবে অন্য কেউ এটি করতেন।

উপরের নেটিভ প্লাগইনটির দিকে তাকালে এটি মনে হয় যেন ওয়েবপ্যাক বান্ডিলিং বা সংকলনটি মূল বান্ডিলিং প্রক্রিয়াতে বিভক্ত হতে পারে, সেই সাথে অনেকগুলি দেশীয় প্লাগইন প্রক্রিয়া যা আমরা বন্ধ বা কাস্টমাইজ বা প্রসারিত করতে পারি। এর অর্থ বহিরাগত কোডকে নির্দিষ্ট বিন্দুতে যেগুলি তারা বেছে নিতে পারে (হুক বলে ডাকা হয়) সেগুলি বেছে নিতে পারে join

প্লাগইনগুলি তাই আউটপুটকে প্রভাবিত করে এবং সাজানোর ওয়েবপ্যাক সংকলকটির সক্ষমতা বাড়িয়ে তোলে।


4
দুর্দান্ত উত্তর, সত্যিই একটি প্রাণবন্ত চিত্র আঁকেন
রোবট্রন

আমি এই উত্তরটি সত্যিই পছন্দ করি। এটি আপনাকে যুক্তি করতে সক্ষম হতে কিছু ব্যাখ্যা দেয়। শুধু সংজ্ঞা নয় এর পিছনে অন্তর্দৃষ্টি।
দাজ্জাগ

1

লোডার একটি ফাইল স্তরে কাজ করে । এগুলি টেমপ্লেট লিখতে পারে, আপনার সুবিধার উপর নির্ভর করে এটিকে পরিবহন করতে কিছু কোড প্রক্রিয়া করতে পারে ইত্যাদি

প্লাগইনগুলি সিস্টেম স্তরে কাজ করে । তারা প্যাটার্ন, ফাইল সিস্টেম হ্যান্ডলিং (নাম, পাথ) ইত্যাদিতে কাজ করতে পারে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.