.gitignore для проектов PhoneGap/Cordova 3.0 - что мне делать?

Я просто попытался создать новый проект phonegap 3.0... Примечание: я новичок в телефоне. В любом случае, я вижу, что папка проекта содержит:

  • .cordova
  • merges
  • platforms
  • plugins
  • www

И попробовав phonegap local run android, я вижу много двоичных/сгенерированных файлов в platforms/android. Это оставляет мне интересно, какие части этой структуры папок следует добавить в мой репозиторий git. Как правило, я бы счел крайне плохой практикой совершать двоичные файлы. Следовательно, я обычно добавлял бы такие шаблоны, как bin/, obj/, *.o, *.pyc и т.д. В .gitignore, чтобы не загрязнять мой репозиторий git тем, что только создает конфликты слияния.

Конечно, www следует добавить в git, но как насчет других частей проекта. До какой степени они являются продуктами исходного кода и до какой степени они проектируют конфигурацию?

Чем вы занимаетесь? Конечно, я новичок, поэтому я едва понимаю, что здесь имеет смысл...

Ответ 1

Ответ зависит от того, на каких платформах вы разрабатываете приложение phongap, и если вы следуете стандартной структуре каталогов.

Если структура вашего проекта является стандартной, вы можете начать с этого gitignore и изменить его для своих нужд.

В правиле большого пальца вы должны исключить все сгенерированные файлы, такие как каталоги bin/ и gen/. Если вы разрабатываете версию Android для своего приложения, вы также должны исключать файлы сборки, например, *.apk.

Все сгенерированные файлы в подкаталоге android также должны быть исключены:

Android/bin/
Android/gen/
Android/assets/

Ответ 2

Расширение на @Jake Moshenko ответ:

Мне нравится идея опускать каталог platforms. Фактически, я могу исключить как каталоги plugins, так и platforms. Хорошей отправной точкой для .gitignore:

platforms/
plugins/

Проблема заключается в том, что чистая копия репо должна быть инициализирована, прежде чем вы сможете с ней работать. Может возникнуть смысл создать init script, например:

#!/bin/bash
textReset=$(tput sgr0)
textGreen=$(tput setaf 2)
message_info () {
  echo "${textGreen}[my-app]${textReset} $1"
}

message_info "Creating necessary directories..."
mkdir plugins
mkdir platforms

message_info "Adding platforms..."
# If using cordova, change to: cordova platform add android
phonegap build android
phonegap build ios

message_info "Adding plugins..."
# If using cordova, change to: cordova plugin add
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

Предостережение к этому подходу заключается в том, что он делает несколько сложнее настраивать специфический для платформы код приложения/конфигурацию за пределами того, что поддерживается phonegap/cordova (т.е. поддержка ориентации экрана).

Обновление: Bash Gist

Этот gist содержит более полный script для обработки проекта, который не передает каталоги plugins и platforms, Он предоставляет механизм для копирования значков и изображений с заставками из www в каталоги платформы (для iOS и Android), установки плагинов и обработки конкретных файлов платформы, которые необходимо добавить в контроль версий.

Обновление: Grunt Gist

Вот еще gist, который является портом Grunt из вышеупомянутого bash script. (Спасибо @obie за подсказку).

Ответ 3

Поэтому я просто понял это через пробную версию и ошибку. Каталог platforms может быть опущен, если вы используете локальную или удаленную сборку phonegap, поскольку она генерируется "на лету". Все остальные папки, включая скрытую папку .cordova, требуются.

Ответ 4

Я просто хотел оставить здесь свой опыт в этом вопросе и подход, который мы, наконец, соблюдали.

В нашем проекте телефонных разговоров мы начали передавать все файлы за пределы папки/платформы с помощью файла .gitignore. Мы так думали, когда разработчик клонировал репозиторий, единственное, что осталось сделать, это выполнить:

phonegap/cordova добавить платформу

Но это не так. Как только платформа была добавлена, и мы попытались скомпилировать ее, появилась ошибка, и приложение не было установлено на устройстве.

Глядя на журналы, мы получили некоторые хиты, которые эта ошибка была вызвана плагинами. Таким образом, мы решили переустановить все плагины, которые мы использовали в проекте, и правильно выполнили приложение.

Итак, мой совет заключается в том, чтобы сохранить в репозитории весь контент, кроме платформы папок и плагинов. Создайте и загрузите в репозиторий файл README со списком плагинов, используемых в проекте.

Таким образом, когда разработчик клонирует репозиторий, ему/ей придется:

1.- Добавить платформы: phonegap/cordova добавить платформу "платформа"

2.- Добавить плагины: плагин phonegap/cordova добавить "плагин"

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

С уважением.

Ответ 5

Многое из этого материала устарело и на самом деле не относится к последней версии Apache Cordova. Я использую Apache Cordova 5.1.1, и этот .gitignore позволяет мне настраивать пользовательские значки и т.д., Блокируя все, что нам не нужно для версии для Android и IOS. Да .gradle используется, поэтому не удаляйте его!

www/
.gradle/
build/
.tmp/
.temp/
coverage/
*.log
node_modules/
bower_components/

Ответ 6

Хотя это несколько личное предпочтение, я пошел с этим (для проекта только для андроида). Удаление большинства, но сохранение каких пользовательских

ToonPlane/platforms/android/*
!ToonPlane/platforms/android/AndroidManifest.xml
ToonPlane/plugins/*
!ToonPlane/plugins/android.json
!ToonPlane/plugins/fetch.json