Cordova 5.0.0: ¿Qué archivos debo enviar a git?

89

Yo uso Cordova 5.0.0 y tengo la siguiente estructura de proyecto:

MyProject
    - hooks
    - platforms
    - plugins
    - resources
    - www
    - config.xml

Mi pregunta ahora es: ¿Cuál de estas carpetas puedo omitir? Lo pregunto porque trabajo en tres plataformas diferentes. Desarrollo en linux para android, windows para windows phone y en mac para ios. Si realizo todo el proyecto, siempre recibo advertencias y errores para las plataformas no compatibles.

Lo que quiero es un repositorio de git minimalista.

Un problema, por ejemplo, son los complementos. Cuando elimino la carpeta de complementos del repositorio, tengo que agregarlos en cada una de mis plataformas de desarrollo manualmente.

Otro problema es la carpeta de recursos. Genero automáticamente iconos y pantallas de bienvenida usando ionic. Cuando ahora trato de construir el proyecto en ios, se queja de las imágenes para Android.

Entonces, ¿qué necesito y qué puedo omitir?

Mulgard
fuente

Respuestas:

122

Puede ignorar los directorios de plataformas y complementos siempre que no haya agregado ningún código personalizado en ellos.

Al agregar complementos y plataformas, agregue --save al comando. p.ej

cordova platform add [email protected] --save

o

cordova plugin add cordova-plugin-device --save

Esto guardará un registro de los complementos y plataformas que usa en su archivo config.xml. Cuando ejecute cordova prepareo cordova buildtodos sus complementos y plataformas enumerados en config.xml se instalarán si aún no lo han hecho.

También puede especificar una plataforma en preparación y compilación. Entonces, si está en su Mac, puede consultar el repositorio de git y ejecutar cordova prepare iospara instalar solo la plataforma ios y los complementos.

Connor
fuente
Esto también funciona para complementos y plataformas existentes. Cordova simplemente ignorará la reinstalación, pero agregará el complemento al archivo de configuración.
rnevius
4
cordova buildno restauró plataformas, pero lo cordova preparehizo en Cordova 6.0.
Victor Sergienko
42
Si olvidó las --saveplataformas y los complementos, solo use cordova platform savey cordova plugin save(nota no --), y agregará las líneas relevantes a su config.xml.
jcaron
1
esto funcionó bien para platformspero no para plugins. cordova prepareno funcionaría con al menos plugin.xmly src. Me di por vencido y simplemente guardé todo pluginsen git.
Jayen
6
a partir de cordova 7.0.0, el comportamiento predeterminado se ha cambiado a guardar. cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit
42

Depende de las plataformas.

Puede utilizar este ejemplo de .gitignore y personalizarlo según sus necesidades.

# Mac
.DS_Store

# iOS
platforms/ios/build/
platforms/ios/www/
platforms/ios/cordova/console.log
*.xcuserdatad

# android
platforms/android/assets/www
platforms/android/bin
platforms/android/gen
platforms/android/local.properties
platforms/android/ant-build
platforms/android/ant-gen
platforms/android/CordovaLib/ant-build
platforms/android/CordovaLib/ant-gen
platforms/android/CordovaLib/bin
platforms/android/CordovaLib/gen
platforms/android/CordovaLib/local.properties

# wp8
platforms/wp8/bin
platforms/wp8/obj
platforms/wp8/www
platforms/wp8/.staging
platforms/wp8/*.suo
platforms/wp8/*.csproj.user

# res
resources/signing
Niko
fuente
¿No tendría sentido ignorar también las plataformas / android / res? AFAIK / understnad, estos se crean durante el proceso de compilación (desde la carpeta res / resources en el directorio principal (proyecto)).
Tomer Cagan
4
platforms/*/Pude ignorar con cordova 6.3.0 y hacer un cordova prepareen los otros sistemas.
Jayen
Este archivo ignorado parece incluir muchos archivos generados, por lo que creo que debe ser más estrecho.
Anders Lindén
1
¿Debería incluir también node_modules? Yo hice.
Cameron A. Ellis
@ CameronA.Ellis Yo tampoco tengo node_modules. ¿Lo agregaste? ¿No hay alguna forma de descargar estos módulos de nodo?
wviana
18

Puede guardar la plataforma y el complemento después utilizando los siguientes comandos.

plataforma de ahorro de masa

$ cordova platform save

Complementos de ahorro masivo

$ cordova plugin save

Tenga en cuenta que no hay - en los comandos anteriores

Una cosa más, después de obtener el repositorio en otra máquina, simplemente ejecute el siguiente comando para generar y obtener complementos y plataformas automáticamente

$ cordova prepare

Para obtener más información, visite los enlaces a continuación. https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Consejo de Cordova : consulte siempre los documentos oficiales antes que nada para obtener la solución correcta.

Hitesh Chavda
fuente
4

La mayoría de las otras respuestas tienen 2/3 años.

Actualización de 2019:

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js

# ========== Cordova - platforms
# android
# platforms/android/app/src/main/assets
# platforms/android/app/src/main/AndroidManifest.xml
# platforms/android/app/src/main/res/drawable-*
# platforms/android/app/src/main/res/mipmap-*
# platforms/android/app/src/main/res/xml/config.xml
# browser
# platforms/browser/app/src/main/assets
# platforms/browser/config.xml
# platforms/browser/www
#
# ========== Cordova - plugins - remove all except json & xml
# plugins/**/.DS_Store
# plugins/**/*.cs
# plugins/**/*.h
# plugins/**/*.java
# plugins/**/*.js
# plugins/**/*.m
# plugins/**/*.map
# plugins/**/*.md
# plugins/**/*.modulemap
# plugins/**/*.ts
# plugins/**/LICENSE
# plugins/**/NOTICE
# plugins/**/*.gradle
# plugins/**/tests/

Como puede ver, comenté la mayoría de las líneas (todas las líneas comienzan con #). Esto se debe a que encontré problemas con los cambios en la versión del complemento y decidí saber qué está sucediendo con las actualizaciones del complemento. Básicamente, todos los archivos de plataformas y complementos están incluidos en el compromiso, ahora mi vida es tranquila.

2019:
Dije con esto .

Después de desarrollar y publicar la aplicación, quedó a continuación:
(Si se desvía de abajo, comente a continuación, podemos aprender unos de otros)

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# Cordova - platforms
platforms

# Cordova - plugins - remove all except json & xml
plugins/**/.DS_Store
plugins/**/*.cs
plugins/**/*.h
plugins/**/*.java
plugins/**/*.js
plugins/**/*.m
plugins/**/*.map
plugins/**/*.md
plugins/**/*.modulemap
plugins/**/*.ts
plugins/**/LICENSE
plugins/**/NOTICE
plugins/**/*.gradle
plugins/**/tests/

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js
Manohar Reddy Poreddy
fuente
1
Simplemente puede hacerlo plugins/*entonces !plugins/**/*.jsony!plugins/**/*.xml
Z. Khullah
también he visto aconsejado que no ignore el bloqueo del paquete
Z. Khullah
@ z-khullah en el enlace provisto, se proporciona el "Opcional para ignorar los clones de Git del complemento" porque a veces cambiamos el código en ellos, por lo que no podemos ignorar todos los archivos. Idealmente, podemos ignorarlo, pero hay sugerencias en línea debido a los problemas en los complementos, especialmente como novato en cordova, esto ayudará. el bloqueo de paquete cambia 10 o 20 de líneas cada vez que cambia la instalación de algún complemento, por lo que esto también es algo que no queremos revisar con el código, también al ignorar el archivo de bloqueo, no hemos tenido ningún problema hasta ahora, se genera a partir del paquete. json. Espero que ayude a dar nuestra perspectiva.
Manohar Reddy Poreddy
Sí, pero el patrón hace lo mismo, solo que con menos líneas. En cuanto al bloqueo de paquete, ayuda a la depuración ya que muestra la estructura exacta de node_modules, pero sí, creo que es opcional
Z. Khullah
1
@ManoharReddyPoreddy stackoverflow.com/questions/44206782/…
Saxena
3

Seguí estos pasos:

  • crear proyecto cordova

  • agregar plataformas

  • agregar complementos

Antes de compilar el proyecto, confirmo y envío archivos generados. Después de construir el proyecto y verificar si hay nuevos archivos generados. Tengo estos para agregar en .gitignore:

/platforms/android/gradlew.bat

/ plataformas / android / build

/ plataformas / android / gradle

/ plataformas / android / libs

/platforms/android/gradlew.bat

/ plataformas / android / CordovaLib / build

/platforms/android/.gradle

Víctor Hugo Calderón
fuente
0

Añado a la lista de Niko:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

y

*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt
Cédric Dromzée
fuente
2
En general, es bueno ignorarlos, no son específicos de Cordova (como .DS_Storetampoco está en la respuesta de Niko).
Jari Keinänen
Estos probablemente deberían abordarse en un gitignore global , no a nivel de proyecto.
bdesham