Плагин знатока для управления версиями и уменьшения JavaScript

Единственная страница приложение JavaScript

Я создал сложное ajax-управляемое единственное веб-приложение страницы, которое использует УСПОКОИТЕЛЬНЫЙ веб-сервис бэкенда, служащий JSON. JavaScript разделяется на многие различные файлы, каждый файл, представляющий своего рода функцию или компонент.

В то время как сервис был в тестировании альфа-версии, я имею просто служить всем этим файлам отдельно без минификации. Но теперь, когда я хотел бы запустить бета-версию, я действительно должен объединить файлы, уменьшить их и присвоить версию им. Я хочу добавить это к своему процессу сборки, с помощью Знатока.

Типы файлов JavaScript

Я использую следующие "типы" файлов JavaScript, из которых № 3 и № 4 являются моими проблемами:

  1. Внешние файлы, такой jQuery и jquery-ui, обслуживаемый от Google CDN. Редко изменяйте эти версии, может быть обработан вручную.
  2. Плагины jQuery, которые я размещаю сам, такие как fullcalendar или ui-расположение. Снова, я редко обновляю их к новым версиям и могу обработать его вручную.
  3. Код JavaScript всего приложения. Пользовательский JavaScript, который распространен через многие файлы и может иногда изменяться. Все эти файлы должны быть загружены, чтобы приложение работало.
  4. Определенный для функции код JavaScript. Пользовательский JavaScript, который загружается по требованию, когда определенную функцию требуют. Этот код может изменяться вполне часто и не загружается при запуске.

Цели сборки

Я хотел бы сделать следующее во время своего процесса сборки:

  • Свяжите весь тип 3 файлы JavaScript вместе, уменьшите их и сохраните как единственный файл с номером версии. Например: app-2.0.6.min.js, где 2.0.6 версия проекта знатока.
  • Все файлы типа 4 должны быть индивидуально уменьшены и сохранены как отдельные файлы с номерами версий на имя. Например: feature-abc-56ab32de29.min.js, где 56ab32de29 номер версии того определенного файла.
  • Обновите файлы HTML с <script> теги для указания на файлы JavaScript с числами правильной версии.
  • Обновите файлы Javscript, которые загружают функцию типа 4 файлы JavaScript для указания на правильные версии.

Вопросы

  • Существует ли плагин знатока, который поможет с конкатенацией?

  • Существует ли плагин знатока, который поможет с минификацией? Идеально, я хотел бы использовать Google Closure Compiler, но буду работать с другими, если более простой.

  • Существует ли плагин знатока, который поможет с управлением версиями?

  • Существует ли способ иметь тип 4, файлы JavaScript имеют независимые номера версий? Идеально, если файл не изменяется между версией 2.0.5 и 2.0.6, нет никакой потребности в пользователях загрузить новую версию, и их кэшированная версия хорошо работала бы. Я использую МЕРЗАВЦА для управления исходным кодом, таким образом, был бы способ использовать хэш-код МЕРЗАВЦА файла для управления версиями?

  • Существует ли решение, которое сожмет JavaScript, который встроен в регулярных файлах HTML, не уничтожая HTML?

  • Существует ли решение, которое сожмет и присвоит версию моим файлам CSS также?

51
задан Tauren 18 October 2010 в 19:24
поделиться