Как навести порядок в зоопарке микро-фреймворков?

Я написал уже несколько обзоров о том, какие микро-фреймворки бывают, и собираюсь делать это и дальше. Однако в какой-то момент управлять этим зоопарком становится сложно. На помощь приходит библиотека Ender. Хотя постойте, это вовсе не библиотека, по крайней мере в том смысле, к которому вы привыкли. Это скорее инструмент для создания собственного фреймворка из других библиотек.

Авторы, Dustin Diaz (ded) и Jacob Thornton (fat) гордо именуют свое творчество как "The no-library library", и что-то в этом названии есть.

Чтобы начать работать с Ender, его нужно установить через npm:

npm install ender -g

Теперь у нас появляется возможность работать с Ender через командную строку, вкратце его API:

  • add
  • remove
  • build
  • compile
  • refresh
  • search
  • info
  • help

Подробное описание каждого метода можно почитать на сайте.

Например, чтобы сделать свою собственную сборку из Undescore.js, Qwery и Reqwest нужно будет выполнить build команду:

ender build reqwest qwery underscore

Мы получаем собранную версию ender.js, сжатую версию ender.min.js и директорию node_modules (если она еще не создана) со всеми нужными npm модулями.

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

Это все хорошо, но что мы получаем на клиентской стороне?

Если бы мы просто объединили все микро-фреймворки в один файл, Ender бы ничем не отличался от других компановщиков. Однако, Ender, и здесь пошел дальше — он пытается все методы микро-фреймворков завернуть через себя и использовать напрямую у элементов. То есть, по сути, синтаксис jQuery:

// Описываем дополнительный метод
$.ender({
 rand: function() {
 return this[Math.floor(Math.random() * this.length)];
 }
}, true);

// Применяем его
$('p').rand();

Определенно вам понравится работать с Ender, он небольшой по размеру и несет в себе хороший функционал для упрощения работы с микро-фреймворками.

Что ещё почитать?

← За что я люблю CoffeeScriptJavaScript микро-фреймворки. Часть  →