Cборка js, redjs builder

в 20:54, , рубрики: .net, javascript, makefile, wpf, Песочница, я пиарюсь, метки: , , , ,

Привет читатель.

Что-то про вступление

Раз уж я все таки уволился с работы и есть свободное время, расскажу немного про сборку скриптов, а так же про свое кустарное решение годичной давности — redjs builder. Статья, наверное, заинтересует js-разработчиков, которые ведут крупные проекты, которые не удобно вести в одном файле.

О чем речь?

Если вы js разработчик и вы в своей жизни писали что-то большее чем плагин слайдера на jquery, то вам наверняка приходила в голову мысль: «а вот как бы было удобно если бы 1-н файл разделить на несколько». И у меня такая идея возникала не однократно, ещё когда активно занимался написанием своей js библиотеки. И тут в свое время я набил себе бока…

Немного о то о сем билдерах

Для начала следует сказать в каких случаях вообще нужен билдер.
За свою практику я встречал 4 типа проектов:

  • Какая-либо библиотека
  • Бложики, персональные странички и прочая нечисть
  • Многостраничные проекты с богатым фронтэндом
  • Single-page приложения

Если вы пишите свою библиотеку, как правило в большинстве случаев её сборка(если она достаточно большая) ложится на ваши плечи. В остальных же случаях подготовка скриптов к релизу часто предусмотрено серверной стороной(но к сожалению не всегда). Билдер имеет смысл использовать в 2-м и 3-м случаях для снижение числа запросов на сервер. В 3-м случае, однако, обычно скрипты компилируются не в один, а в несколько файлов, тк весь код в одном файле получается слишком жирный. Single-page приложения при должной архитектуре, хранят большую часть кода в отдельных модулях и явного использования сборки js якобы не требуют.

Вдогонку скажу, что по своей сути сборка бывает 2-х типов:

  • склеивание содержимого файлов
  • трансляция какого-то внутреннего синтаксиса

Какие билдеры я видел?

  • Очень простые(bat файл)
  • Универсальные, поэтапные, но долго настраиваемые(Ant)
  • Специализированные(GWT)
  • Билдеры на скриптовых языках(на php, nodejs)

Надо сказать, что как билдеры все они меня не устраивали… Я бы предпочел бы что-то вроде php но более простое и ненавязчивое. Так же хотелось коробочного решения. И кое каких дополнительных фич.

Redjs Builder

Cборка js, redjs builder
скачать здесь

Очень простая программка, написанная на C#(да зависит от windows, для 7-ки никаких дополнительных телодвижений не требует).

С позволения перечислю некоторые возможности и достоинства:

  • возможность поставить на автозагрузку(при старте системы сразу в трее)
  • сборка js файла из нескольких, причем не просто склейка и замещение токенов
  • синтаксис токенов сделан в стиле комментариев, что не отвлекает от кода, не ломает подсветку
  • строгое и нестрогое включение. нестрогое можно исключить из дерева сборки
  • автопостроение при изменении файлов
  • возможность простроения в несколько мест сразу
  • минификация кода

Все мои js проекты строятся им.
Что бы посмотреть на программу в действии можно скачать один из них, например ree. В билдере(который тоже нужно скачать и распаковать) нужно указать input — главный файл из папочки source(в моих проектах совпадает с названием проекта), output — место кода будет создаваться скомпилированная версия.

Синтаксис инструкций можно посмотреть как в самом билдере, так и на сайте в документации.

Мне действительно приятно что я написал этот билдер, хотя потратил порядочно времени(не зная C#-па то). На данный момент программа исправно трудится для меня на проектах 10-и, как открытых так и закрытых.

Каков статус сейчас

На самом деле, не смотря на свои достоинства, эта версия(2) устарела в моих глазах буквально за пару недель использования. У нее есть свои недочеты в идеологии, а также пару багов, которых ввиду моей неопытности на момент написания(в WPF и С#) сейчас трудно устранить.

На данный момент у меня уже есть две версии билдера с шильдиком 3, которая лишена многих недочетов дополнена плюшками и конфетками. В ближайшее время планирую дописать.
За любые отклики/критику/предложения буду благодарен.

Ctrl+B

Автор: ArchySharp

Источник

Поделиться

* - обязательные к заполнению поля