Cordova 5.0.0: Quais arquivos devo enviar para o git?

89

Eu uso o Cordova 5.0.0 e tenho a seguinte estrutura de projeto:

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

Minha pergunta agora é: qual dessas pastas posso omitir? Eu pergunto porque trabalho em três plataformas diferentes. Desenvolvo em linux para android, windows para windows phone e mac para ios. Se eu comprometer todo o projeto sempre recebo avisos e erros para as plataformas não suportadas.

O que eu quero é um repositório git minimalista.

Um problema, por exemplo, são os plug-ins. Quando excluo a pasta de plug-ins do repositório, tenho que adicioná-los em cada uma de minha plataforma de desenvolvimento manualmente.

Outro problema é a pasta de recursos. Eu gero automaticamente ícones e telas de splash usando iônicos. Agora, quando tento construir o projeto no ios, ele reclama das imagens para android.

Então, o que eu preciso e o que posso omitir?

Mulgard
fonte

Respostas:

122

Você pode ignorar os diretórios de plataformas e plug-ins, desde que não tenha adicionado nenhum código personalizado a eles.

Ao adicionar plug-ins e plataformas, adicione --save ao comando. por exemplo

cordova platform add [email protected] --save

ou

cordova plugin add cordova-plugin-device --save

Isso salvará um registro dos plug-ins e plataformas que você usa no arquivo config.xml. Quando você executa, cordova prepareou cordova buildtodos os seus plug-ins e plataformas listados em config.xml serão instalados, caso ainda não tenham sido instalados.

Você também pode especificar uma plataforma na preparação e construção. Portanto, se você estiver no Mac, pode verificar o repositório git e executar cordova prepare iospara instalar apenas a plataforma ios e os plug-ins.

Connor
fonte
Isso funciona para plug-ins e plataformas existentes também. O Cordova irá simplesmente ignorar a reinstalação, mas adicionará o plug-in ao arquivo de configuração.
rnevius
4
cordova buildnão restaurou plataformas, mas cordova preparesim no Cordova 6.0.
Victor Sergienko
42
Se você se esqueceu de --saveplataformas e plug-ins, apenas use cordova platform savee cordova plugin save(observe não --), e ele adicionará as linhas relevantes ao seu config.xml.
jcaron
1
funcionou bem para, platformsmas não para plugins. cordova preparenão funcionaria com pelo menos plugin.xmle src. desisti e salvei tudo pluginsno git.
Jayen
6
a partir do cordova 7.0.0, o comportamento padrão foi alterado para salvar. cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit
42

Depende das plataformas.

Você pode usar este exemplo de .gitignore e personalizar de acordo com suas necessidades.

# 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
fonte
não faria sentido ignorar também plataformas / android / res? AFAIK / understnad, eles são criados durante o processo de construção (da pasta res / resources no diretório pai (projeto)).
Tomer Cagan
4
Consegui ignorar platforms/*/com o Cordova 6.3.0 e fazer um cordova preparenos outros sistemas.
Jayen
Este arquivo para ignorar parece incluir muitos arquivos gerados, então ele precisa ser mais restrito, eu acho.
Anders Lindén
1
Deve incluir também node_modules? Eu fiz.
Cameron A. Ellis
@ CameronA.Ellis eu também tenho node_modules. Você o adicionou? Não existe alguma maneira de baixar esses módulos de nó.
wviana
18

Você pode salvar a plataforma e o plugin posteriormente usando os comandos a seguir.

plataforma de economia de massa

$ cordova platform save

Plugins salvando em massa

$ cordova plugin save

Observe que não há - nos comandos acima

Mais uma coisa, depois de buscar o repo em outra máquina, você apenas executa o seguinte comando para gerar e buscar plug-ins e plataformas automaticamente

$ cordova prepare

Para obter mais referências, visite os links abaixo. https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Dica do Cordova : sempre consulte os documentos oficiais antes de qualquer coisa para obter a solução certa.

Hitesh Chavda
fonte
4

A maioria das outras respostas tem 2/3 anos.

Atualização 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 você pode ver, eu comentei a maioria das linhas (todas as linhas começando com #). Isso ocorre porque tive problemas com as mudanças de versão do plugin e decidi saber o que está acontecendo com as atualizações do plugin. Essencialmente, todos os arquivos de plataforma e plug-in estão incluídos no commit, agora minha vida está em paz.

2019:
eu disse com isso .

Depois de desenvolver e publicar o aplicativo, ficou abaixo:
(Se você se desviar do abaixo, comente abaixo, podemos aprender um com o outro)

# 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
fonte
1
Você pode simplesmente fazer plugins/*então !plugins/**/*.jsone!plugins/**/*.xml
Z. Khullah
Também vi aconselhado a não ignorar o bloqueio de pacote
Z. Khullah
@ z-khullah no link fornecido, o "Opcional para ignorar clones do plugin Git" é fornecido porque às vezes mudamos o código neles, portanto, não podemos ignorar todos os arquivos. Idealmente, podemos ignorar, mas existem sugestões online devido a problemas nos plugins, especialmente como um novato em cordova, isso vai ajudar. o bloqueio do pacote muda 10s ou 20s de linhas cada vez que algum plugin é alterado, então isso também é algo que não queremos revisar o código, também ignorando o arquivo de bloqueio que não tivemos nenhum problema até agora, ele é gerado a partir do pacote. json. Espero que ajude a dar nossa perspectiva.
Manohar Reddy Poreddy
Sim, mas o padrão faz a mesma coisa, apenas com menos linhas. Quanto ao bloqueio de pacote, ajuda a depurar, pois mostra a estrutura exata de node_modules, mas sim, acho que é opcional
Z. Khullah
1
@ManoharReddyPoreddy stackoverflow.com/questions/44206782/…
Adit Saxena
3

Eu segui estas etapas:

  • criar projeto cordova

  • adicionar plataformas

  • adicionar plugins

Antes de construir o projeto, eu envio e envio os arquivos gerados. Depois de construir o projeto e verificar se há novos arquivos gerados. Eu tenho que adicionar .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

Victor Hugo Calderon
fonte
0

Eu adiciono à lista Niko:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

e

*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt
Cédric Dromzée
fonte
2
Em geral, é bom ignorar isso, não é específico de Cordova (o que .DS_Storetambém não ocorre na resposta de Niko).
Jari Keinänen,
Isso provavelmente deve ser tratado em um gitignore global , não em um nível de projeto.
bdesham