usar - .gitignore para proyectos PhoneGap/Cordova 3.0-¿qué debo comprometer?




ionic gitignore (4)

Intenté crear un nuevo proyecto de Phonegap 3.0 ... Nota: Soy nuevo en Phonegap. De todos modos, veo que la carpeta del proyecto contiene:

  • .cordova
  • merges
  • platforms
  • plugins
  • www

Y habiendo probado con phonegap local run android , veo muchos archivos binarios / generados en platforms/android . Esto me deja pensando, ¿qué partes de esta estructura de carpetas debo agregar a mi repositorio de git? Normalmente, considero una práctica extremadamente pobre para comprometer archivos binarios. Por lo tanto, normalmente agregaría patrones como bin/ , obj/ , *.o , *.pyc etc. a .gitignore para evitar contaminar mi repositorio de git con cosas que solo sirven para crear conflictos de fusión.

Seguramente, www debe agregarse a git, pero ¿qué pasa con las otras partes del proyecto? ¿Hasta qué punto son productos del código fuente y en qué medida son la configuración del proyecto?

¿Qué haces? De acuerdo, soy nuevo, así que apenas entiendo lo que tiene sentido aquí ...

https://code.i-harness.com


Así que acabo de descubrir esto a través de prueba y error. El directorio de platforms se puede omitir si está utilizando la generación local o remota de phonegap, ya que se genera sobre la marcha. Se requieren todas las otras carpetas, incluida la carpeta oculta .cordova .


Expandiendo la respuesta de @Jake Moshenko:

Me gusta la idea de omitir el directorio de platforms . De hecho, puedo excluir los directorios de plugins y platforms . Un buen punto de partida para .gitignore :

platforms/
plugins/

El problema con esto es que se debe inicializar una copia limpia del repositorio antes de poder trabajar con él. Puede tener sentido crear un script de inicio como:

#!/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

Una advertencia a este enfoque es que hace que sea un poco más difícil personalizar el código / configuración de la aplicación específica de la plataforma fuera de lo que admite phonegap / cordova (es decir, soporte de orientación de pantalla).

Actualización: Bash Gist

Esta esencia contiene una secuencia de comandos más completa para manejar un proyecto que no compromete los plugins y directorios de platforms . Proporciona un mecanismo para copiar los iconos y las imágenes de pantalla alternativa desde www a los directorios de la plataforma (para iOS y Android), instalar complementos y manejar archivos específicos de la plataforma que se deben agregar al control de versiones.

Actualización: Grunt Gist

Aquí hay otra esencia que es un puerto Grunt del script bash mencionado anteriormente. (Gracias a @obie por sugerir gruñidos).


Muchas de estas cosas son antiguas y no se aplican realmente a la última versión de Apache Cordova. Estoy usando Apache Cordova 5.1.1 y este .gitignore me permite seguir personalizando con iconos personalizados, etc. mientras bloquea todo lo que no necesitamos para la versión tanto para Android como para iOS. Sí. Se usa .gradle así que no lo elimine.

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

Si bien es algo preferencia personal, fui con esto (para un proyecto solo con Android). Eliminando la mayoría, pero manteniendo lo que es personalizado

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




cordova-3