2012-05-30 2 views
2

Я хотел бы знать, есть ли способ непрерывно развиваться с Trigger.io и избегать создания сборки forge при каждом изменении файла, который я хочу протестировать в своем браузере или симуляторе.Trigger.io непрерывная разработка

ответ

3

я столкнулся с той же проблемой, и у меня есть рабочее решение, которое использует watchr и следить, чтобы автоматически восстановить каждый раз, когда я вношу изменения в исходный файл. Если вы используете «веб-версию» вашего приложения, вы можете внести изменения в исходный файл и перейти непосредственно в свой браузер и достаточно быстро увидеть эффект ваших изменений в зависимости от того, сколько времени займет сборка.

Пререквизиты: Ruby, watchr, Unix 'watch' и терминал.

  1. gem install watchr.
  2. создать новый рубиновый файл для watchr, чтобы узнать, какие файлы следует отслеживать и что делать, когда он видит изменение. Я назвал свой файл 'my_watch.rb': https://gist.github.com/3153167
  3. открыть два терминала. Терминал 1 будет запускать watchr, а второй терминал будет запускать «сборку кузницы ...».
  4. В терминале 1 запустите 'watchr my_watch.rb', убедитесь, что путь к my_watch.rb верен и убедитесь, что вы отредактировали my_watch.rb в соответствии с вашей настройкой, чтобы путь внутри watch (...) отражал файлы для просмотра. Мой пример наблюдает за всеми файлами в том же каталоге (и ниже), что и скрипт my_watch.rb. Вы можете поместить my_watch.rb в папку 'src' вашего приложения Trigger.io, если вы хотите совместить мой пример и запустить watchr my_watch.rb непосредственно из папки src. Также не нужно обновлять команду и путь оболочки в блоке, чтобы отразить вашу среду. Опять же, в моем примере «my_watch.rb» находится внутри «src /», поэтому, когда обнаружено изменение, мы поднимаемся на один каталог и вызываем «сборку forge».
  5. Я стараюсь активно развиваться с помощью «веб-версии» моего приложения, поэтому я могу просто открыть терминал 2 в моем каталоге проектов forge и «forge run web». Когда я тестирую в симуляторах и на устройствах, да, я должен запускать сборку forge каждый раз, когда хочу увидеть изменение. Тем не менее, мне обычно не нужно ждать завершения сборки forge, потому что watchr отпустил сборку, как только я внес изменения, и это происходит довольно быстро.

Я знаю, что это не идеальное решение, но до сих пор разработка новых функций в «веб-версии», а затем реализация в мобильных версиях была для меня очень гладкой. Мне никогда не нужно было убивать версию «сети» после сборки, но мне, возможно, просто повезло. Что касается запуска сборки каждый раз, когда вы хотите протестировать мобильные версии, если вы хорошо разбираетесь в своих сочетаниях клавиш, это действительно неплохо. XCode заставляет вас создавать и запускать после внесения изменений в исходный код при создании родных приложений для iOS, поэтому я не думаю, что Trigger уникален в выполнении этого шага сборки.

Надеюсь, это поможет, и мой ответ не слишком специфичен для меня и моей установки.

+0

Нет, это выглядит действительно полезным. Благодарю. Я собираюсь отметить это как ответ. –

3

Фаза сборки делает некоторые изменения в вашем источнике, чтобы включить кузницу. * API-интерфейсы - поэтому попытка просто использовать необработанные файлы в вашем каталоге src не будет работать.

Возможно, у вас может возникнуть соблазн изменить файлы непосредственно в каталоге development, но это довольно плохая идея: мы удаляем эти файлы безнаказанно, когда нам нужно!

У нас есть планы по нашей среднесрочной дорожной карте, чтобы добавить наблюдателя файловой системы, чтобы начать сборку автоматически, когда произошли изменения.

В то же время, я просто использую forge build && forge run PLATFORM, который имеет тенденцию только занять несколько секунд ...

+1

Наблюдатель будет потрясающим. Я занимаюсь разработкой RoR и, как правило, не нужно перезапускать сервер, чтобы выполнять новые изменения для * большинства * файлов. Мы даже используем Live Reload для автоматического обновления наших браузеров с помощью изменений html/css, даже не перезагружая браузер. Я могу понять, что это не очень легко с iOS/Android (хотя проверьте это на http://irrationalfab.github.com/blog/2012/05/22/introducing-live-for-rubymotion/), но, по крайней мере, при запуске Узел должен работать. –

0

в то время как не идеальный ...это работает для меня.

перейти в разработке/веб

гт ЦСИ

ссылку на корневой ЦСИ, т.е. пер -s ../../src ЦСИ

скопировать all.js из Интернета/подделать и добавить в свой index.html

т.е.

начало nodemon web.js

Открыть в браузере.

Обратите внимание, что вам нужно будет прокомментировать тег сценария all.js для не-веб-сборок.

Смежные вопросы