Обновление: в эти дни есть Бауэр , Компонент и Browserify , которые автоматически позаботятся обо всем следующем для нас.
Я удивлен, что никто еще не рассказал о том, что я делаю. Вот как я управляю скриптами и ресурсами.
У меня есть каждый проект, над которым я работаю, с SVN
. Почти у всех сценариев, которые я включаю, есть зеркало SVN (в настоящее время у github есть svn), это означает, что я могу затем использовать внешние SVN и извлекать любую ветку или версию или все, что мне нужно, этого проекта непосредственно в папку проектов scripts
. Поскольку мы используем SVN, эти сценарии легко отслеживать, управлять и обновлять.
Если проект не в SVN, то я просто добавляю его в общий проект SVN, который я создал, поэтому, например, для проектов A и B, оба используют jquery-project-not-in-svn
, поэтому мы вставляем jquery-project-not-in-svn
в наш общий проект. Репозиторий SVN, а затем используйте внешние ссылки SVN в проектах A и B для ссылки на него - как описано выше.
Теперь это касается управления, выборки и обновления.
Вот как я освещаю включения и запросы скриптов.
Поскольку у каждого проекта теперь есть свой собственный каталог сценариев, который содержит все необходимые ему сценарии (которые управляются внешними SVN-файлами), теперь нам нужно беспокоиться об их уменьшении, чтобы уменьшить нагрузку на наш сервер. Каждый проект имеет Makefile
в своем корне, который содержит команду update
. Эта команда выполнит следующее:
- Выполните обновление SVN (это обновит все внешние SVN соответственно)
- Как только это будет сделано, он упакует и сократит все js-файлы до
scripts/all.js
и scripts/all.min.js
Я не могу поделиться точным Makefile
, но могу поделиться общедоступным, который занимается упаковкой / объединением и минимизацией CSS и Javascript. Вот ссылка:
http://github.com/balupton/jquery-sparkle/blob/9921fcbf1cbeab7a4f2f875a91cb8548f3f65721/Makefile
Делая эти вещи, мы достигли:
- Управление внешними ресурсами сценариев в нескольких проектах
- Автоматическое обновление соответствующих ресурсов скрипта
- Упаковка всех используемых ресурсов сценария проекта в один файл
- Сокращение этого файла, чтобы выполнялся только один запрос JS и один запрос CSS.
Итак, удачи, не стесняйтесь оставлять комментарии, если хотите узнать больше.