По-моему, именно здесь приходит хорошая система сборки. Чем сложнее ваша настройка, тем полезнее иметь возможность настраивать файлы конфигурации, которые могут консолидировать управление зависимостями в одном месте.Это становится особенно важным, когда:
Вам необходимо загрузить одинаковые наборы зависимостей на нескольких статических страницах, но ваши списки зависимостей часто меняются во время разработки.
Необходимо иметь возможность легко создавать сжатые версии зависимостей для производственной версии.Я считаю, что это очень важно для Backbone, потому что несжатые версии действительно большие, но весьма полезные во время разработки.
Я обычно использовал для этого Apache Ant ,но есть много систем сборки.В прошлом я делал:
Создание файла index.tmpl.html
с основной разметкой HTML и заполнителями для JS-скриптов, CSS-файлов и шаблонов подчеркивания.
Создайте файл build.properties
, который определяет мои списки зависимостей.Вы можете сгруппировать их по-разному под разными именами свойств, например, lib.scripts.all
или util.scripts.all
.
В моем процессе сборки создайте новый файл index.html
, основанный на index.tmpl.html
, с <script>
и другими тегами для загрузки моих зависимостей.У меня есть разные цели, чтобы загрузить необработанные файлы или сжать все в готовый к работе единый файл сценария.
Пример этой установки вы можете увидеть в этом проекте Github .
Если я понимаю ваши требования, вы можете настроить аналогичный файл сборки с несколькими настройками, чтобы позволить вам установить a) шаблон HTML для использования (индекс по умолчанию или другой с разметкой, специфичной для эксперимента)), b) выходной файл, c) конкретные наборы зависимостей для загрузки, d) дополнительные зависимости для загрузки, например, специфичные для эксперимента модули или сценарии инициализации.Вы можете установить эти свойства в определенной цели (если вы думаете, что будете использовать их несколько раз) или просто указать их в командной строке при вызове ant
через флаг -D
.
Это даст вам большую гибкость в повторном использовании различных частей вашего кода и даст дополнительное преимущество, заключающееся в том, что вам будет проще провести «эксперимент» в вашем основном рабочем коде, просто включив егопостоянно в процессе сборки.