Если ты когда-нибудь пробовал настроить чистый Webpack, то знаешь: легче собрать ядерный реактор из скотча и изоленты. Mix решает эту проблему: даёт нормальный синтаксис и закрывает 80% типовых кейсов.

Да, он не панацея, но для Laravel-проектов — золотая середина: не нужно ковыряться в адской конфигурации, а всё, что чаще всего надо (JS, SCSS, версии, минификация), уже есть.

Установка

В свежем Laravel Mix уже лежит в package.json. Если по какой-то причине его нет — добавь:

"devDependencies": {
    "laravel-mix": "^6.0.0" } 

Потом стандартное:

npm install

Конфигурация

Точка входа — webpack.mix.js. Там ты пишешь, что и куда собирать.

Простейший вариант:

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css');

Теперь app.js и app.scss поедут в public. Всё.

Сборка

Для разработки:

npm run dev

Для продакшена (с минификацией):

npm run prod

Если хочешь, чтобы файлы собирались на лету при изменениях:

npm run watch

Версионирование

Чтобы не ловить баги с кешированием статики, добавляй версионирование:

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css')
   .version();

Теперь вместо /css/app.css будет /css/app.css?id=sd7f8sd7f8sdf. Браузеры любят.

Плагины и расширения

Mix можно расширять. Например, оптимизация картинок:

npm install laravel-mix-imagemin --save-dev

В webpack.mix.js:

const mix = require('laravel-mix');
require('laravel-mix-imagemin');

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css')
   .imagemin();

Где Mix реально выручает

  • Нужен быстрый старт без шаманства с Webpack.
  • Проекты, где важна стабильная сборка, а не бесконечная кастомизация.
  • Когда надо просто «писать код, а не настраивать инструменты».

Где Mix мешает

  • Когда нужно что-то очень кастомное — придётся лезть в чистый Webpack.
  • Если проект чисто фронтовый без Laravel — лучше взять Vite или rollup.
  • Иногда при апдейтах Mix начинает капризничать, и ты тратишь вечер на то, чтобы подружить пакеты.

Итог

Laravel Mix — это спасение для бэкенд-разработчиков, которым приходится ковырять фронт. Он закрывает 90% кейсов: сборка, минификация, версии, SCSS, картинки.
А всё остальное можно допилить костылями или просто признать, что пора переехать на Vite.