- node load
- npm i
- grunt build или
- npm run build
Работа проверена на версиях Node 4.3.2LTS и ниже, на версиях выше могут быть непредвиденные ошибки
Описание | Команды к консоли |
---|---|
Скачивание всех ресурсов темы. Необходим файл с сервера load.js | node load |
Компиляция статики, выполнение всех заданий watch один раз. довольно бесполезно | grunt scompile |
Компилирует js | grunt js |
Минимизация всего и вся | grunt minify |
Создание изображений и минификация | grunt imagecreate |
Создание спрайтов и минификация | grunt spritecreate |
Билд скрипт | grunt build |
Пересобрать всю муру | grunt rebuild |
Билд скрипт для многоядерных (4 ядра), с паралелзьмом | grunt buildcon |
Тест сайта на скорость и оптимальность | grunt speedtest |
Отправка темы на сервер | grunt deploy |
Запуск watch в обычном режиме, для мощных машин | grunt watch --mode=compile |
Запуск watch в режиме экономии task'ов. В файле watch оставть только,php css js задания, остальное закоментить | grunt watch --mode=lightcompile |
Установка новых bower'ов, где {package} имя пакета | grunt shell:bi:{package} |
Удаление пакетов bower'ов, где {package} имя пакета | grunt shell:bu:{package} |
А для всего остального есть MasterCard
Описание | Переменная | Значение |
---|---|---|
Режим обычной работы, тяжелый, загружает все задания. Используется для билда или вызовов статичных заданий. Режим по умолчанию | --mode | dev |
Режим watch компилирования. Загружает только задания необходимые для компиляции sources | --mode | compile |
Режим деплоя. Экономит время при инициализации, в случае если нужно сделать только deploy | --mode | deploy |
Режим для слабых машин, значительно разгружает режим компилирования. Компилируется только css, js, php. Режим по умолчанию выключен | --light | true/false |
Режим колхозной непрерывной интеграции. Кидает измененные скомпиленые файлы прямиком на сервер. Режим по умолчанию выключен | --live | true/false |
Пример смены режима на облегченный с интеграцией
grunt watch --mode=compile --light=true --live=true
#Как сделать пакеты нормальными или если что-то пошло не так или операция Н#
##NodeLoad##
Обязательно наличие установленного глобально пакета ftp (npm i -g ftp)
##Bourbone##
При компиле в консоль сыпят сообщения что "такой то класс будет удален из следующей версии", все эти сообщение, сюрприз, увеличивают время компиляции. Советую отключить это дерьмо.
bower/bourbone/app/assets/stylesheets/_bourbone.scss
Закоментить последнюю строку
@import "bourbon-deprecated-upcoming";
##Page speed##
Чтобы получать инфу об оптимизации переписать project.domain в файле package.json. И не забыть установить глобально psi
npm install --g psi
##Ftp_push##
Обязательно надо настроить параметры проекта в package.json (массив project). В случае если деплой происходит не на нашем сервере то необходимо заменить путь, в файле Gruntfile.js
##Perfbudget##
Чтобы получать инфу об оптимизации переписать domain в файле package.json.
##Сoncurrent##
В настройках указать число ядер. Ускоряет. Не использовать тем у кого меньше 4 ядер.
##Bower через grunt##
Напоминаю, что этот плагин и команды устанавливают пакеты в папку web, пакеты для developa ставятся по классической схеме через bower
##Depricatнутые##
###JadePhp### since 2.5.0 - чтобы не использовать экранирование просто используем окроткий вывод через !=
Чтобы избавится от htmlspecialchars при использовании оператора = коментим в файле
node_modules/grunt-jade-php/node_modules/jade-php/lib/compiler.js
с 178 по 180 и с 210 до 212 строки
###Favicons###
since 2.5.0 - пакет берется напрямую из репозитоя автора, где он все соблагоизволил поравить.
Это дерьмо на винде не будет работать без imagistic (или как то так, так что его надо установить) и с 0.4.0 версией sync-exec. Второе исправить легко, идем в файла
node_modules/grunt-favicons/package.json
И правим версию
"sync-exec": "^0.4.0" -> "sync-exec": "^0.6.0"
после чего в этой папке запускаем npm install. Теперь grunt favicons заработает.
#Что есть в сборке#
- NodeLoad - скрипт настроеный на скачку всего необходимого внутри темы, для развертки
- Bower task для установки bower-пакетов
- Shell для работы с консолью, и консольными командами
- Haml для компиляции Haml в Php
- SASS для компиляции SASS в CSS
- Clean для удаления файлов
- Combine-mq для сборки медиазапросов
- Cssmin для минификации CSS
- Favicons для создания favicon'ок
- FileCreator для создания файлов
- FtpPush для деплоя
- FontLoader для загрузки шрифтов с ftp
- Webpack для Webpack сборки JS
- Uglify для минификации JS файлов
- Retinafy для создания ретина-изображений
- Spritesmith для создания спрайтов и стилей для них
- Imagemin для минификации IMG и PNG
- Watch для livereload
- Newer для отбрасывания из выборок файлов, которые не изменились
- Perfbudget тестируем скорость, альтернатива pagespeed, но круче
- Copy для копирования файлов
- LoadConfig для разбиения настроек тасков по файлам
- Time время выполнения заданий
- Svgmin для минификации векторной графики
###Alternative
###Что есть, но пока что не используется###
- Сoncurrent Время билда должно быть весьма велико чтобы что то параллелить, сейчас такой надобности нету, наоборот рпоигрыш наблюдается. На многоядерных можно пользовать.
###Depricated### Либо не используется, либо пока не найдено приминения
- Coffee компилируется Webpack'ом
- Compass старый компилятор и фрейм Compass для SASS. Исключен из за высокого времени на компиляцию
- Notify подымает сообщения, с помощью Growl'a. Пищало, лишнее время на загрузку таска. Не нужно, если держать окно консоли поверх остальных
- Periodic периодический запуск заданий, оказалось не то что надо, так как занимается лишь повторением задач, в случае если они не были запущены ни разу за указанный период. Практического применения не найдено
- Pagespeed проходит проверку в Google insight pageSpeed. Пока не работает и зависает, пока что не применимо.
- Concat конкатенирует файлы, без надобности, теперь.
- HTML5 Manifest для кеширования и оффлайн страниц, пока таких задач не возникало