Ошибка от webpack: TypeError: compiler.plugin is not a function?

Ошибка "TypeError: compiler.plugin is not a function" возникает обычно в связи с неправильным использованием плагинов в конфигурации webpack. Для обработки событий компиляции (например, начало, завершение) в webpack используется система обратных вызовов, основанная на плагинах.

В первой версии webpack (v1) использовался метод compiler.plugin(name, callback), где compiler - это экземпляр компилятора webpack, а name - это имя события, на которое регистрируется обработчик callback. Однако, начиная с второй версии webpack (v2), этот метод был изменен на compiler.hooks[name].tap(callback), где hook - это объект, содержащий все доступные события компиляции.

Поэтому, если вы получаете ошибку "TypeError: compiler.plugin is not a function", это может означать, что вы пытаетесь использовать устаревший синтаксис для подключения плагина.

Для исправления этой ошибки, вам необходимо обновить настройки вашей конфигурации webpack, чтобы они соответствовали версии webpack, которую вы используете.

Вот пример обновления кода в вашей конфигурации для корректного подключения плагина:

// Версия 1.x
compiler.plugin('eventName', callback);

// Версия 2.x и выше
compiler.hooks.eventName.tap('PluginName', callback);

Вы должны заменить 'eventName' на соответствующее событие компиляции (например, 'after-compile', 'emit', 'done' и т.д.), а 'PluginName' - на имя вашего плагина.

Убедитесь, что вы обновили все участки кода, которые используют устаревший синтаксис плагинов.

Также стоит проверить, что у вас установлена последняя версия webpack и соответствующих плагинов. Обратите внимание, что различные плагины могут иметь свои собственные методы и события, поэтому для каждого плагина может быть необходимо использовать специфическую конструкцию.

Надеюсь, это поможет вам исправить ошибку "TypeError: compiler.plugin is not a function" и успешно использовать плагины в вашей конфигурации webpack.