Организовать СУХОЙ шаблон для экспериментов JavaScript? - PullRequest
2 голосов
/ 15 марта 2012

Я создаю довольно масштабное приложение JavaScript Backbone.js с этой организацией папок:

app
  index.html

libs
  underscore
  jquery
  [...]

src
  utils
  modules
  [...]

Файл index.html в основном загружает все маршрутизаторы Backbone.js и т. Д. И создает экземпляры AMDмодули и т. д.

Однако часто я нахожу необходимость создавать небольшие приложения, которые в основном разделяют зависимости с приложением Big.

Предположим, мне нужно создать 3 небольших эксперимента (отдельные страницы), которые все загружают одни и те же обычные подозреваемые (подчеркивание, основа и несколько утилитных библиотек и модулей, которые я написал).

Хотя они могут различаться: 1) как они расширяют эти библиотеки JavaScript, 2) что создается и 3) разметка и взаимодействие.

Как мне сохранить этот эксперимент СУХОЙ?
Как мне установить этот "расширяемый шаблон"?

1 Ответ

0 голосов
/ 15 марта 2012

По-моему, именно здесь приходит хорошая система сборки. Чем сложнее ваша настройка, тем полезнее иметь возможность настраивать файлы конфигурации, которые могут консолидировать управление зависимостями в одном месте.Это становится особенно важным, когда:

  • Вам необходимо загрузить одинаковые наборы зависимостей на нескольких статических страницах, но ваши списки зависимостей часто меняются во время разработки.

  • Необходимо иметь возможность легко создавать сжатые версии зависимостей для производственной версии.Я считаю, что это очень важно для Backbone, потому что несжатые версии действительно большие, но весьма полезные во время разработки.

Я обычно использовал для этого Apache Ant ,но есть много систем сборки.В прошлом я делал:

  1. Создание файла index.tmpl.html с основной разметкой HTML и заполнителями для JS-скриптов, CSS-файлов и шаблонов подчеркивания.

  2. Создайте файл build.properties, который определяет мои списки зависимостей.Вы можете сгруппировать их по-разному под разными именами свойств, например, lib.scripts.all или util.scripts.all.

  3. В моем процессе сборки создайте новый файл index.html, основанный на index.tmpl.html, с <script> и другими тегами для загрузки моих зависимостей.У меня есть разные цели, чтобы загрузить необработанные файлы или сжать все в готовый к работе единый файл сценария.

Пример этой установки вы можете увидеть в этом проекте Github .

Если я понимаю ваши требования, вы можете настроить аналогичный файл сборки с несколькими настройками, чтобы позволить вам установить a) шаблон HTML для использования (индекс по умолчанию или другой с разметкой, специфичной для эксперимента)), b) выходной файл, c) конкретные наборы зависимостей для загрузки, d) дополнительные зависимости для загрузки, например, специфичные для эксперимента модули или сценарии инициализации.Вы можете установить эти свойства в определенной цели (если вы думаете, что будете использовать их несколько раз) или просто указать их в командной строке при вызове ant через флаг -D.

Это даст вам большую гибкость в повторном использовании различных частей вашего кода и даст дополнительное преимущество, заключающееся в том, что вам будет проще провести «эксперимент» в вашем основном рабочем коде, просто включив егопостоянно в процессе сборки.

...