Если ты когда-нибудь пробовал настроить чистый 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.
0 комментариев