Удивительную и несравненную индийскую кухню невозможно представить без экзотических специй: есть у южан масала для овощей, есть для риса, для рыбы, птицы и мяса, есть и масала–чай. Но это не полный перечень многообразий и разновидностей. Дело в том, что каждая хозяйка в каждом доме имеет свой собственный рецепт масалы для овощей, риса, мяса и всего прочего — нередко этот рецепт трепетно и бережно передаётся из поколения в поколение, как в европейских аристократических фамилиях передаётся столовое серебро.
Эти самые масалы прижились и на Ближнем Востоке: в бакалейных отделах супермаркетов можно увидеть ряды, уставленные картонными пачками с готовыми смесями. Впрочем, в арабском мире эти наборы могут иметь и другие имена: например, я охотно пользовался ливанской смесью, называемой «за′атар» (или «загатар», если читать это слово по правилам чтения украинского языка — в арабском тоже есть фрикативный звук «г»). Как бы там ни было, но восточные базары, включая «супербазары» (то есть, супермаркеты) предоставляют достаточный ассортимент специй (например, см. фото в начале статьи), чтобы составить композицию приправ — масалу — на любой, даже самый взыскательный, вкус.
Я, вот, тоже решил замесить свою gulp—«масалу» для автоматизации работы над сайтом, но приступил к работе не с чистого листа, а разбирая и отлаживая уже имеющийся файл сценариев gulpfile.js из весьма неплохого набора WebStarterKit 0.5.2 от Google.
Первым делом, пришлось откорректировать набор плагинов, которые я с энтузиазмом нахватал в период первого знакомства с gulp′ом. На перенастройку ранее сложившейся конфигурации пакета меня побудил доселе неизвестный загрузчик плагинов, который в наборе сценариев gulpfile.js выглядел так:
var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
$.useref();
Оказалось, что этот инструмент загружает (в базовом gulpfile) 17 плагинов, имена которых начинаются с «gulp» — вроде бы, ничего особенного, но при изменении набора этих самых плагинов (удалении ненужных и добавлении необходимых), они неизменно будут «подтягиваться» в скрипт по списку установленных пакетов, имеющихся в из package.json. А вызывается загруженный с помощью этого загрузчика плагин как некий метод: в приведенном выше примере вызывается плагин gulp-useref.
По умолчанию, gulp-load-plugins загружает плагины, соответствующие маске «gulp-*», но эту маску можно изменить. Разработчики рассматриваемого gulpfile.js, по какой–то причине, не стали этого делать и часть плагинов загружают «руками», то есть, путём явного указания имён. Не вдаваясь в причины подобной избирательности, я решил следовать той же тактике (по крайней мере, пока).
В дальнейшем, после вдумчивого и неторопливого сравнения моего первичного перечня плагинов и предлагаемого гугловскими экспертами, мой файл gulp–настроек (package.json) обогатился такими приобретениями:
- gulp–cache — создание промежуточного временного файла;
- gulp–changed — отслеживание изменённых файлов;
- gulp–csso — оптимизация и минимизация CSS–файлов;
- gulp-if — управление выполнением задачи по условию;
- gulp-jshint — проверка файлов сценариев Javascript на наличие ошибок;
- gulp-replace — замена строки;
- gulp-size — вывод сведений о размере проекта или составляющих его файлов;
- gulp-useref — редактирование ссылок на используемые ресурсы (css, javascript) с учётом изменений конечных имён файлов;
- jshint-stylish — дополнение к плагину gulp-jshint, позволяющее выводить разработчику более содержательные описания выявленных ошибок;
- psi — тестирование компонентов проекта и вывод подробной информации о проекте;
- run-sequence — запуск нескольких задач gulp последовательно или параллельно.
Оказались невостребованными шесть плагинов из упоминавшихся в гугловском файле сценариев:
- apache-server-config, gulp–flatten и opn — плагины установлены (имеются в файле конфигурации package.json), но не упоминаются в базовом gulpfile.js, то есть, нет практической надобности в их использовании;
- browser-sync — дублирует функциональность gulp-livereload;
- require-dir — подключает файлы из указанной в аргументах папки, но пока подключать нечего;
- gulp-ruby-sass — дублирует функциональность Scout.
Кроме того, из первоначального набора, составленного при установке gulp, удалены пакеты:
- gulp-autoprefixer и gulp-sass — дублируют функциональность Scout;
- gulp-browserify, gulp-notify и gulp-util — не нашлось применения.
А ещё угроза удаления нависла над плагинами из первоначального набора, которые, похоже, дублируют утилиты из нового набора (WebStarterKit):
- gulp-concat и gulp-rename, похоже, дублирует gulp-useref;
- gulp-filesize — gulp-size;
- glob вроде бы, нигде не используется, но вдруг пригодится….
Комментариев нет:
Отправить комментарий