В чем разница между загрузчиками и плагинами в webpack?
Документация для плагинов просто говорит:
Используйте плагины для добавления функций, обычно связанных с пакетами в веб-пакете.
Я знаю, что babel использует загрузчик для преобразований jsx/es2015, но он похож на другие общие задачи (например, copy-webpack-plugin). Вместо этого используйте плагины.
Погрузчики выполняют преобразование предварительной обработки практически любого формата файла, когда вы используете sth как require("my-loader!./my-awesome-module")
в своем коде. По сравнению с плагинами они довольно просты, поскольку они (a) выставляют только одну единственную функцию для webpack и (b) не могут влиять на фактический процесс сборки.
Плагины, с другой стороны, могут глубоко интегрироваться в webpack, потому что они могут регистрировать крючки в системе сборки webpacks и получать доступ (и изменять) компилятор, а также то, как он работает, а также компиляцию. Поэтому они более мощные, но более трудные для поддержания.
Добавление дополнительного и более простого ответа.
Погрузчики:
Погрузчики работают на уровне отдельных файлов во время или до создания пакета.
Плагины:
Плагины работают на уровне bundle или chunk и обычно работают в конце процесса генерации пакета. Плагины также могут изменять способ создания самих пакетов. Плагины имеют более мощный контроль, чем загрузчики.
Только для примера вы можете четко видеть в нижнем изображении, где работают загрузчики и где работают плагины -
Рекомендации: Статья и Изображение