.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 (т.е. поддержка ориентации экрана).
Этот gist содержит более полный script для обработки проекта, который не передает каталоги plugins
и platforms
, Он предоставляет механизм для копирования значков и изображений с заставками из www в каталоги платформы (для iOS и Android), установки плагинов и обработки конкретных файлов платформы, которые необходимо добавить в контроль версий.
Вот еще 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