Laravel Mix предоставляет удобный и гибкий API для компиляции и минимизации ресурсов вашего Laravel-приложения, таких как JavaScript, CSS и изображения. Он использует Webpack под капотом, но предоставляет более простой и понятный интерфейс для разработчиков. В этом обзоре мы рассмотрим, как начать работу с Laravel Mix и приведем примеры его использования.

Установка Laravel Mix

Laravel Mix уже включен в стандартный шаблон Laravel, поэтому вам не нужно устанавливать его отдельно. Однако, если вы создаете новый проект Laravel, убедитесь, что в вашем package.json файле есть зависимость от Laravel Mix:

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

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

Конфигурация Laravel Mix находится в файле webpack.mix.js в корне вашего проекта. Этот файл является точкой входа для вашего процесса сборки.

Пример базовой конфигурации:

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

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

Этот пример компилирует JavaScript-файл resources/js/app.js в public/js/app.js и компилирует SCSS-файл resources/sass/app.scss в public/css/app.css.

Использование Laravel Mix

Компиляция JavaScript и CSS

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

Минимизация ресурсов

Laravel Mix автоматически минимизирует ваши ресурсы в режиме продакшена. Вы можете запустить процесс сборки в режиме продакшена, используя флаг --production:

npm run prod

Использование плагинов

Laravel Mix поддерживает широкий спектр плагинов Webpack, что позволяет расширять его функциональность. Например, для обработки изображений вы можете использовать плагин laravel-mix-imagemin:

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();

Использование версионирования

Laravel Mix автоматически добавляет хэш к именам файлов, чтобы обеспечить кэширование. Вы можете включить версионирование, добавив метод .version():

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

Запуск Laravel Mix

Чтобы запустить процесс сборки, используйте команду npm run dev для разработки или npm run prod для продакшена. Laravel Mix также предоставляет команду npm run watch, которая автоматически пересобирает ваши ресурсы при изменении исходных файлов.

Заключение

Laravel Mix предлагает мощный и гибкий способ работы с ресурсами в Laravel-приложениях. Он упрощает процесс компиляции и минимизации, позволяя разработчикам сосредоточиться на написании кода, а не на настройке инструментов сборки. Для более глубокого погружения в Laravel Mix рекомендуется изучить официальную документацию.