Быстро и безболезненно внедряем Laravel Elixir в Symfony
Здравствуйте, товарищи! Последнее время на работе использую php-фреймворк Laravel, а в личных целях, в т.ч. для самообразования, использую Symfony. В последний раз, когда я с ним возился, для компиляции ассетов я использовал AsseticBundle, но пришло время двигаться вперед и забыть об этом ужасе, летящем на крыльях ночи. Шучу, не ужасе, просто лучше использовать общепринятые инструменты.
В Laravel используется для таких целей крутой инструмент
Для начала подразумевается, что у Вас уже установлен nodejs и gulp. Если же не установлен, то вы можете установить все это дело себе в ubuntu-подобную ОС следующими командами
1 2 3 4 5 6 7 |
sudo apt-get install nodejs sudo apt-get install npm sudo npm install -g n sudo n 6.5.0 sudo ln -sf /usr/local/n/versions/node/6.5.0/bin/node /usr/bin/node node -v sudo npm install --global gulp |
Итак, у вас уже имеется проект на Symfony. В его корне выполним команду
1 2 |
npm init npm install --save-dev gulp laravel-elixir |
Теперь можно приступать к конфигурации gulp для проекта. Пример gulpfile.js
1 2 3 4 5 6 7 8 9 10 11 12 13 |
const elixir = require('laravel-elixir'); elixir.config.publicPath = 'web'; elixir.config.appPath = 'src'; elixir.config.assetsPath = 'app/Resources/assets'; elixir(function(mix) { mix.scripts([ 'core.js', ]); mix.version(['web/js/all.js']); }); |
Теперь разберем что это все значит. Сначала мы подключили elixir, после назначили папку, которая находится в публичном доступе (для laravel — public, для symfony — web), после назначили папку с приложением и папку, где лежат исходники для фронтэнда. В папке с иходниками желательно хранить скрипты — в js, css — соответсвенно в подпапке css. Для остальных частей — less,scss — желательно создать такие же подпапки, чтоб elixir их подцепил. К примеру файл core.js лежит в проекте в папке app/Resouces/assets/js/core.js. В общем теперь можно делать все согласно
Теперь нам нужно заставить symfony взаимодействовать с elexir. Для этого можно использовать репозиторий
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.