У меня есть сайт, который использует много jquery / javascript. Теперь на странице указателя у меня есть около 10 javascript-файлов, включенных в заголовок:
<head>
<script src="/js/jquery.js"></script>
<script src="/js/jquery_plugin_1.js"></script>
<script src="/js/jquery_plugin_2.js"></script>
<script src="/js/jquery_plugin_3.js"></script>
<script src="/js/my_scripts_1.js"></script>
<script src="/js/my_scripts_2.js"></script>
<script src="/js/my_scripts_3.js"></script>
<script src="/js/my_scripts_4.js"></script>
<!-- ...and so on -->
</head>
Поскольку количество посетителей увеличивается, я начинаю задумываться об эффективности всего этого. Я прочитал, что это хорошая идея - минимизировать все файлы JavaScript и собрать их вместе в один, поэтому браузер должен сделать только один HTTP-запрос. Я так и сделал. Теперь у меня есть everything.js
файл, содержащий все javascript, включая jquery, плагины и мои собственные скрипты.
<head>
<!--
<script src="/js/jquery.js"></script>
<script src="/js/jquery_plugin_1.js"></script>
<script src="/js/jquery_plugin_2.js"></script>
<script src="/js/jquery_plugin_3.js"></script>
<script src="/js/my_scripts_1.js"></script>
<script src="/js/my_scripts_2.js"></script>
<script src="/js/my_scripts_3.js"></script>
<script src="/js/my_scripts_4.js"></script>
...
-->
<script src="/js/everything.js"></script>
</head>
Веселье начинается, когда мне нужно внести изменения в один из файлов. Каждый раз, чтобы проверить, работают ли мои изменения должным образом, мне нужно сжать файл и обновить everything.js
или раскомментировать весь старый код. При таком рабочем процессе слишком легко что-то забыть и ошибиться.
Вопрос: Есть ли автоматизированная вещь, которая может снять эту головную боль? Что-то, что позволило бы мне редактировать мои отдельные файлы, как я раньше, и минимизировало бы и собирало все вместе, когда я буду готов проверить свои изменения?
Я использую PHP5 и SVN
РЕШЕНИЕ
Спасибо за вашу помощь, все, я нашел свое решение:
Я вставлю post-commit
хук в мое репозиторий SVN, который возьмет все мои .js
файлы, соединит их и минимизирует их с помощью YUI-компрессора. Затем в моем скрипте я включу Javascript включает в себя, так что в среде разработки сайт будет включать в себя отдельные файлы Javascript, но в производстве будет включен комбинированный и минимизированный файл.