Я стараюсь сделать разработку легкой и иметь оптимизированную производительность в производстве.
Цели, которые я пытаюсь сделать, это:
Примечание. Вполне нормально использовать модули Apachee и файлы .htaccess, если они значительно ускоряют процесс. Но он должен быть способен быстро настроить их, в идеале, только с помощью команды настройки.
Есть ли что-то такое? Или каковы наилучшие ресурсы для начала?
Я бы предпочел решение, состоящее из PHP-скрипта (в конце концов, немного файлов .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 – это оптимизированная, упакованная и скомпилированная версия скрипта. Это решение должно иметь возможность обнаруживать, когда исходный файл изменяется и перекомпилирует сценарии для производства. Он должен быть настроен для определения местоположения сценария и типа кэширования (диск в порядке). В идеале у pack_js, вероятно, есть возможность сделать возможную ленивую загрузку js в процессе производства.
Каждое предложение приветствуется.
Все еще работает над исследованием наилучшего решения, использующего уже доступный ресурс.
CSS-JS-Booster и Turbine до сих пор выглядят как лучшая отправная точка: http://github.com/Schepp/CSS-JS-Booster и http://turbinecss.org/
Почему вы не используете систему сборки проекта для развертывания приложения на производственном сервере, который делает именно это? Для PHP вам может понравиться Phing , поскольку он позволит вам писать дополнительные плагины в PHP, которые вы можете выполнить при развертывании. Другие варианты, которые вы, возможно, захотите рассмотреть по этому пути, – это Ant и Capistrano (и есть много других), но для этого требуется знание других языков (предоставлено, вы можете запустить парсер php из них, если вы действительно хотели … ).
Отличный вопрос!
Я работал с процессом с аналогичными требованиями, но мы использовали несколько иной подход. Я понимаю, что, может быть, это не совсем то, что вам нужно, но все равно сделайте несколько рекомендаций:
Я понимаю, что он немного отличается от того, что вы намеревались, но по моему опыту он приводит к более надежной модели продвижения продвижения.