Я пытаюсь упростить разработку и иметь высоко оптимизированный вывод в процессе производства.
Цели, которые я пытаюсь сделать, это:
- Быстрое создание производственных страниц! Я бы хотел, чтобы Скорость страницы Google и YSlow вернули показатели лучшие, Это означает:
- Объединить и сжать JS файлы и CSS и позиционировать группу в нужном месте (внизу или вверху страницы) в HTML. Для .js Google Closure кажется лучшим выбором.
- .JS и .CSS надежно кэшируются, но имейте в виду, что они перезагружаются, когда обновляется компонент .JS или CSS. 301 Файл не изменен и т.д.
- Тип кэша. Я думаю, что кэш на диске в порядке. Рассмотрим APC и Memcache или Redis, если они значительно улучшат скорость.
- Возможность указать и использовать ленивую загрузку.JS при необходимости или, по крайней мере, не блокировать отображение страницы.
- (Необязательно) Сжатие HTML тоже.
- Сделать разработку сайта проще:
- Используйте короткую команду в файле .php, если вы хотите включить .js или .css и сжать их только в рабочей среде
- Используйте синтаксис, например pack_js (['first.js', 'second.js' 'third.js']) и pack_css (['first.less', 'second. less '' third.css '], true)
- Легко настраивать среду разработки или производства. Возможно, просто вызов SetDebug (true или false). Производство по умолчанию
- Легко настроить папки кэша и исходные папки
- Использование LESS, чтобы сделать CSS-разработку отстойной. Автоматически компилировать LESS файлы в CSS в процессе производства, но использовать LESS.js в разработке, чтобы каждый раз, когда вы меняете файл без изменений в процессе разработки, он обновляется на сервере.
- (необязательно) В разработке он включает консоль JS и LESS, похожую на оболочку, на https://www.squarefree.com/bookmarklets/webdevel.html
- Используйте короткую команду в файле .php, если вы хотите включить .js или .css и сжать их только в рабочей среде
Примечание. в порядке использования модулей Apachee и файлов .htaccess, если они значительно ускоряют процесс. Но он должен быть в состоянии установить их быстро, идеально с помощью только команды настройки.
Есть ли что-то такое? Или каковы наилучшие ресурсы для начала?
Я бы предпочел решение, состоящее из PHP script (в конечном итоге несколько файлов .php,.htaccess и сжатие исполняемых файлов), который сжимает .JS с помощью Google Closure Compiler и сжимает/компилирует файлы CSS/LESS бесполезные комментарии и пробелы. Для создания версии разработки на рабочем сервере может использоваться специальный файл cookie.
Я бы хотел:
Функцию php можно использовать следующим образом: pack_js (['first.js', 'second.js', 'third.js']), которые пишут что-то вроде:
На серверах разработки:
<script type="text/javascript" src="static/js/first.js"></script>
<script type="text/javascript" src="static/js/second.js"></script>
<script type="text/javascript" src="static/js/third.js"></script>
На производственных серверах (если специальный файл cookie отсутствует):
<script type="text/javascript" src="cache/12a42323bfe339ea9w.js"></script>
Другая функция: pack_css (['first.less ",' second.less ',' third.css '], true), которые пишут что-то вроде:
На серверах разработки:
<link rel="stylesheet/less" href="/static/css/first.less" type="text/css" />
<link rel="stylesheet/less" href="/static/css/second.less" type="text/css" />
<link href="/static/css/third.css" type="text/css" />
<script src="http://lesscss.googlecode.com/files/less-1.0.21.min.js"></script>
<script type="text/javascript" charset="utf-8">
less.env = "development";
less.watch();
</script>
На производственных серверах (если специальный файл cookie отсутствует):
<link href="/cache/46537a8b8e876f7a8e7.css" type="text/css" />
второй параметр указывает, должен ли less.js выводиться на сервере разработки
Очевидно, что 12a42323bfe339ea9w.js и 46537a8b8e876f7a8e7.css - это оптимизированная, упакованная и скомпилированная версия script. Это решение должно иметь возможность обнаруживать, когда исходный файл изменяется и перекомпилирует сценарии для производства. Он должен быть конфигурирован в отношении местоположений script и типа кэширования (диск в порядке). В идеале у pack_js, вероятно, есть возможность сделать возможную ленивую загрузку js в процессе производства.
Каждое предложение приветствуется.