Загрузчики Webpack и плагины; какая разница?

36

В чем разница между загрузчиками и плагинами в webpack?

Документация для плагинов просто говорит:

Используйте плагины для добавления функций, обычно связанных с пакетами в веб-пакете.

Я знаю, что babel использует загрузчик для преобразований jsx/es2015, но он похож на другие общие задачи (например, copy-webpack-plugin). Вместо этого используйте плагины.

  • 2
    Loader преобразует файлы в распознаваемые js (и делает что-то во время преобразования), плагины могут делать все, что им нужно, на выходе загрузчиков.
Теги:
webpack

2 ответа

28
Лучший ответ

Погрузчики выполняют преобразование предварительной обработки практически любого формата файла, когда вы используете sth как require("my-loader!./my-awesome-module") в своем коде. По сравнению с плагинами они довольно просты, поскольку они (a) выставляют только одну единственную функцию для webpack и (b) не могут влиять на фактический процесс сборки.

Плагины, с другой стороны, могут глубоко интегрироваться в webpack, потому что они могут регистрировать крючки в системе сборки webpacks и получать доступ (и изменять) компилятор, а также то, как он работает, а также компиляцию. Поэтому они более мощные, но более трудные для поддержания.

  • 0
    почему загрузчик не может глубоко интегрироваться с webpack?
  • 0
    @NitinTyagi Потому что это работа плагинов. Цель Загрузчиков - быть простым.
13

Добавление дополнительного и более простого ответа.

Погрузчики:

Погрузчики работают на уровне отдельных файлов во время или до создания пакета.

Плагины:

Плагины работают на уровне bundle или chunk и обычно работают в конце процесса генерации пакета. Плагины также могут изменять способ создания самих пакетов. Плагины имеют более мощный контроль, чем загрузчики.

Только для примера вы можете четко видеть в нижнем изображении, где работают загрузчики и где работают плагины -

Изображение 109461 Рекомендации: Статья и Изображение

  • 20
    Отлично сработано! Два простых предложения, и теперь я понимаю разницу. Теперь перейдите к переписыванию библиотеки документации ПОЛНОГО веб-пакета, потому что она совершенно непонятна.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню