Использовать Xcode как Javascript IDE, возможно?

Я работаю над Javascript-интенсивным веб-приложением, предназначенным для работы на iPhone/iPad. Он также работает во всех браузерах Webkit (Safari + Chrome).

У меня есть собственная среда MVC, состоящая из многих файлов JavaScript: по одному для каждого представления, по одному для каждого контроллера, для многих "вспомогательных" классов.

У меня также есть куча файлов LESS, один "главный", включая каждый LESS файл для каждого представления (например, если у меня есть UIListView.js, у меня также есть UIListView.less).

В настоящее время я работаю с MacVim и Less.app и делаю тесты на симуляторах iPhone/iPad, реальных iPhone/iPad, а иногда и на Safari или Chrome, когда мне действительно нужно отлаживать "хардкор" с помощью инструментов разработчика. Все мои файлы хранятся в моей папке ~/Sites/projectX, которую я просматриваю с помощью встроенного веб-сервера Mac.

Это нормально во время разработки, у меня есть много небольших файлов, на которые ссылается мой index.htm, но это не имеет значения, поскольку я нахожусь в своей внутренней сети через WiFi.

То, что я хотел бы достичь, - это более "ориентированный на проект" подход. Так же, как когда я разрабатываю проект iOS в Xcode, я бы хотел использовать XCode для всех моих потребностей в разработке, сохранить все мои исходные файлы в каталоге отдельно от ~/Sites, скажем ~/Desktop/projectX. Я хотел бы иметь две конфигурации (отладка и выпуск) для использования с "Build and run":

  • "debug" config просто скомпилирует основной .less файл (который включает в себя все небольшие бездействующие файлы), скопируйте файл JS + CSS + HTM в какой-нибудь каталог (~/Sites/projectX_debug), вдоль со всеми графическими ресурсами. Затем, в зависимости от выбранной "подконфигурации", запустите iPhone Simulator, iPad Simulator, Safari или Chrome, очистите его кеш (через AppleScript?) И откройте index.htm

  • конфигурацию "release", которая будет склеить все файлы JS вместе и минимизировать их, скомпилировать и минимизировать файл .less, изменить index.htm, чтобы ссылаться только на склеенный JS, а затем оптимизировать все PNG с помощью pngout/pngcrush/whatever перед отправкой всего архива в локальный каталог (~/Sites/projectX_release) или sftp на мой производственный сервер.

Я считаю, что могу достичь, если не все, но большую часть этого, используя фазы сборки XCode 4, возможно, используя make файлы GNU или какой-то препроцессор, но я потерялся с того, с чего начать.

У кого-то уже есть такая настройка для использования Xcode, чтобы сделать что-то еще, кроме разработки Mac/iOS, но все еще используя классическую концепцию фаз сборки /make файлов, традиционную для большинства IDE?

(Допустимым обходным решением было бы просто создать bash script, чтобы справиться с этим - я уже могу управлять им самостоятельно, но мне бы очень хотелось использовать интегрированные функции XCode и просто нажимать Cmd-R "компилировать" и запустить мой проект в режиме отладки).


Ответ 1

Я попытаюсь выполнить все, что вам нужно...

"debug" config просто скомпилирует основной файл .less(который включает в себя все небольшие файлы бездействия),

  • Я бы создал правило сборки для обработки бездействующих файлов, используя script для их компиляции.

скопируйте файл JS + CSS + HTM на некоторый каталог (~/Sites/projectX_debug), а также все графические Ресурсы. Затем, в зависимости от выбранной "подконфигурации", запуск либо iPhone Simulator, iPad Simulator, Safari, либо Chrome, очистите его кеш (через AppleScript?) и откройте index.htm

  • Для этого вам просто нужно добавить свои файлы на фазу копирования в разделе "Сборка фаз".
  • Вы можете установить каталог сборки в своем целевом разделе "Настройки сборки" (~/Sites/projectX_debug, если хотите).

конфигурацию "release", которая будет склеить все файлы JS вместе и минимизировать их, скомпилируйте и уменьшите файл .less, измените index.htm на ссылаться только на склеенные JS, а затем оптимизировать все PNG с pngout/pngcrush/whatever перед отправкой всего архива на локальный каталог (~/Sites/projectX_release) или sftp для моего производства сервер.

  • Для этой части вы можете создать новую цель и добавить разные правила и настройки.

ИЛИ

Если вышеуказанное слишком сложно:

  • Напишите два сценария bash.
  • Сделайте две цели.
  • Добавьте bash script как фазу сборки в каждой цели.

Надеюсь, что это поможет.