Использовать Xcode в качестве Javascript IDE, возможно? - PullRequest
12 голосов
/ 20 ноября 2011

Я работаю над 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. Я хотел бы иметь две конфигурации (отладочную и выпускную) для использования с «Построить и запустить»:

  • конфигурация "debug" просто скомпилирует основной файл .less (который включает в себя все небольшие файлы .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 / что угодно перед отправкой всего архива в локальный каталог (~ / Sites / projectX_release) или по sftp на мой рабочий сервер.

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

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

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


1 Ответ

1 голос
/ 30 апреля 2012

Я попытаюсь пройтись по шагам, которые вы должны сделать ...

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

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

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

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

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

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

ИЛИ

Если вышеприведенное слишком сложно:

  1. Напишите два сценария bash.
  2. Создайте две цели.
  3. Добавьте свой bash-скрипт в качестве фазы сборки в каждой цели.

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

...