Разработчики WordPress повсеместно применяют Vagrant в локальной разработке. В результате этого стали появляться многочисленные новые конфигурации (примерно каждую неделю), реализующие потребности различных команд. Theme Juice – новый open source проект, который пополнил растущий список Vagrant-ресурсов, основанных на WordPress.
Фундаментом проекта стала VVV – одна из наиболее популярных и лучше всего поддерживаемых конфигураций Vagrant. Виртуальная машина основана на Apache-форке VVV, который носит название VVV-Apache.
Theme Juice устанавливается как Ruby gem и требует для своей работы Vagrant и VirtualBox. С помощью команды tj create вы сможете задать информацию о проекте, его путь, информацию о базе данных, после чего уже сможете создать локальную среду разработки (если ее еще нет). Theme Juice автоматически синхронизирует локальное расположение проекта с его расположением на виртуальной машине, что позволит вам выполнять его из любого места системы.
Theme Juice также поддерживает Windows с некоторыми ограничениями в плане функций.
Если вы не используете Apache, Theme Juice может быть модифицирован для использования с Nginx через исходный VVV, что реализуется при помощи команды:
tj new --vm-box [email protected]:Varying-Vagrant-Vagrants/VVV.git --nginx
Доступ к проектам с различных устройств, включая мобильные девайсы
Одна из уникальных возможностей Theme Juice состоит в том, что каждый проект, созданный с помощью tj, автоматически поддерживает xip.io – бесплатное доменное имя, которое обеспечивает wildcard DNS для любого IP адреса. Это позволяет получать доступ к виртуальным хостам на вашем сервере разработки с других устройств в вашей локальной сети – к примеру, с планшетов и мобильных телефонов. Как показывает документация, этот подход идеально работает с OSX:
«Если вы используете OSX, то в таком случае все должно работать из коробки. Если вы не используете OSX, значит, вам нужно будет привязать порт 80 на вашем хосте к 8080; Vagrant не может сделать это по умолчанию по соображениям безопасности.
Как только вы сделаете это, вы сможете получить доступ к проекту с других устройств в той же самой сети, введя следующее:
< project-name >.< your-hosts-ip-address >.xip.io
К примеру, themejuice.192.168.1.1.xip.io»
Эта возможность позволяет вам легко тестировать свои проекты на мобильных устройствах без какой-либо дополнительной конфигурации.
История Theme Juice
Проект был создан Ezekiel Gabrielse и людьми из Produce Results для внутреннего использования в своем агентстве. Gabrielse – ведущий разработчик небольшой команды девелоперов, для которых Theme Juice теперь обязательный инструмент.
Мы работаем в быстром темпе, поэтому возможность легкого создания и удаления проектов, а также быстрого восстановления/установки существующих проектов, очень важна для сохранения нашего потока операций», отметил он. «Мы дорабатывали эту утилиту и пользовались ей в течение 10 месяцев, и в итоге мы решили сделать ее доступной для сообщества».
Gabrielse создавал Theme Juice для упрощения процесса создания новых разрабатываемых сайтов, что было несколько неудобно осуществлять через VVV.
«После нескольких недель использования VVV я понял, что процесс создания нового сайта имеет повторяющиеся шаги, и, как и любой разработчик, я постарался автоматизировать их», отметил он. (Это было задолго до выпуска Variable VVV, который автоматизировал создания и удаление сайтов).
«То, что начиналось с небольшой Rake задачи, включенной в стартовую тему нашей компании, быстро переросло в отдельный проект, который я представил в виде Ruby gem»
Итоговый проект Theme Juice интегрируется с VVV и улучшает многие из его уникальных функций, добавляя автоматическую установку сайтов и дополнительную функциональность для управления инструментами разработки, которыми пользовалась команда Gabrielse.
«Достаточно сказать, что этот инструмент заметно экономит наше время в результате автоматизации процесса создания новых проектов», отметил он. «Мы также подключили некоторые скрипты через конфигурационный файл (который называется Juicefile), который позволяет нам легко запускать любые процессы разработки, требуемые при создании проекта».
Как только Gabrielse понял, насколько полезным является функционал, он решил развить его, и внес все инструменты команды в конфигурацию. Это позволило команде беспрепятственно переключаться между инструментами, которые требуются при работе над проектом.
«Мы недавно перешли от Guard к Grunt, от NPM пакетов к Bower пакетам», сказал Gabrielse. «Имея все эти инструменты, превращенные в команды tj, нам не пришлось ничего менять в нашем потоке операций, наших скриптах, нашем развертывании и т.д., поскольку все это уже было в виде псевдонимов команд, обеспеченных tj. Это позволило нам быстро переключаться от одного проекта к другому, не беспокоясь за подключение инструментов разработки для данного конкретного проекта, поскольку все инструменты уже были представлены в виде команд, т.е. мы могли просто сфокусироваться на задаче».
Theme Juice апеллирует к опытным разработчикам, которым нравится использовать современные инструменты разработки и системы.
«В нашей стартовой теме мы используем Composer для управления PHP/WP-плагинами, Bower для фронтэнд зависимостей, Grunt для управления инструментами, среди которых Coffee, Haml и Sass», отметил Gabrielse. «На первый взгляд управление всем этим кажется довольно сложным, однако благодаря tj все проходит очень гладко и легко».
Список глобальных опций и команд доступен на странице документации Theme Juice.
В будущем Gabrielse планирует расширять Theme Juice для обработки развертывания. Прямо сейчас он склоняется к интегрированию автоматического потока операций Capistrano, однако он открыт и для других предложений, поскольку теперь проект стал публичным. Любой, кто хочет внести свой вклад в проект, может узнать больше о нем на странице GitHub.
интересная тема