Cordova 5.0.0: Git'e hangi dosyaları teslim etmeliyim?


89

Cordova 5.0.0 kullanıyorum ve aşağıdaki proje yapısına sahibim:

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

Şimdi sorum şu: Bu klasörlerden hangisini atlayabilirim? Soruyorum çünkü üç farklı platformda çalışıyorum. Android için linux, windows phone için windows ve ios için mac üzerinde geliştiriyorum. Tüm projeyi taahhüt edersem, desteklenmeyen platformlar için her zaman uyarı ve hata alıyorum.

İstediğim şey minimalist bir git deposu.

Örneğin bir problem eklentilerdir. Eklenti klasörünü depodan sildiğimde, bunları geliştirme platformumun her birine manuel olarak eklemem gerekiyor.

Diğer bir sorun da kaynaklar klasörüdür. İonic kullanarak otomatik olarak simgeler ve açılış ekranları oluşturuyorum. Şimdi projeyi ios üzerinde oluşturmaya çalıştığımda, android için görüntülerden şikayet ediyor.

Peki neye ihtiyacım var ve neyi ihmal edebilirim?

Yanıtlar:


121

Herhangi bir özel kod eklemediğiniz sürece platformları ve eklenti dizinlerini göz ardı edebilirsiniz.

Eklentiler ve platformlar eklerken, komuta --save ekleyin. Örneğin

cordova platform add ios@3.8.0 --save

veya

cordova plugin add cordova-plugin-device --save

Bu, kullandığınız eklentilerin ve platformların bir kaydını config.xml dosyanıza kaydedecektir. Çalıştırdığınızda cordova prepareveya cordova buildconfig.xml'de listelenen tüm eklentileriniz ve platformlarınız, henüz yapılmadıysa yüklenecektir.

Hazırlama ve inşa etme işlemlerinde de bir platform belirtebilirsiniz. Dolayısıyla, Mac'inizdeyseniz, git deposunu kontrol edebilir ve cordova prepare iosyalnızca ios platformunu ve eklentilerini yüklemek için çalıştırabilirsiniz .


Bu, mevcut eklentiler ve platformlar için de geçerlidir. Cordova, yeniden yüklemeyi basitçe yok sayacak, ancak eklentiyi yapılandırma dosyasına ekleyecektir.
rnevius

4
cordova buildplatformları geri yüklemedi, ancak cordova prepareCordova 6.0'da yaptı.
Victor Sergienko

43
--savePlatformları ve eklentileri unuttuysanız , sadece cordova platform saveve cordova plugin save(hayır not edin --) kullanın ve ilgili satırları config.xml.
jcaron

1
bu iyi çalıştı platformsama için değil plugins. cordova prepareen azından plugin.xmlve ile çalışmaz src. Ben pes ettim ve hepsini pluginsgit'e kurtardım .
Jayen

7
cordova 7.0.0'dan itibaren varsayılan davranış kaydetme olarak değiştirildi. cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit

42

Platformlara bağlıdır.

Bu .gitignore örneğini kullanabilir ve ihtiyaçlarınıza göre özelleştirebilirsiniz.

# 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

platformları / android / res'i de görmezden gelmek mantıklı olmaz mı? AFAIK / understnad, bunlar oluşturma işlemi sırasında oluşturulur (ana (proje) dizinindeki res / kaynaklar klasöründen).
Tomer Cagan

4
platforms/*/cordova 6.3.0 ile görmezden gelebildim cordova prepareve diğer sistemlerde a yapabildim .
Jayen

Bu görmezden gelen dosya, çok sayıda oluşturulmuş dosya içeriyor gibi görünüyor, bu yüzden daha dar olması gerektiğini düşünüyorum.
Anders Lindén

1
Ayrıca içermeli node_modulesmi? Yaptım.
Cameron A. Ellis

@ CameronA.Ellis Bende de var node_modules. Ekledin mi Bu düğüm modüllerini indirmenin bir yolu yok mu?
wviana

18

Aşağıdaki komutları kullanarak platformu ve eklentiyi daha sonra kaydedebilirsiniz.

platform toplu tasarrufu

$ cordova platform save

Eklentiler toplu tasarruf

$ cordova plugin save

Lütfen yukarıdaki komutların olmadığını unutmayın

Bir şey daha, depoyu başka bir makinede getirdikten sonra, eklentileri ve platformları otomatik olarak oluşturmak ve getirmek için aşağıdaki komutu çalıştırmanız yeterlidir.

$ cordova prepare

Daha fazla referans için aşağıdaki bağlantıları ziyaret edin. https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Cordova İpucu : Doğru çözümü bulmak için her şeyden önce her zaman resmi belgelere başvurun.



4

Diğer cevapların çoğu 2/3 yaşında.

2019 Güncellemesi:

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

Gördüğünüz gibi satırların çoğunu yorumladım (# ile başlayan tüm satırlar). Bunun nedeni, eklenti sürüm değişiklikleriyle ilgili sorunlarla karşılaştım ve eklenti güncellemelerinde neler olduğunu öğrenmeye karar verdim. Esasen tüm platform ve eklenti dosyaları commit'e dahil edildi, şimdi hayatım huzurlu.

2019:
Birlikte belirtilen bu .

Uygulamayı geliştirip yayınladıktan sonra şu oldu:
(Aşağıdan saparsanız aşağıya yorum yapın, birbirimizden öğrenebiliriz)

# 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

1
O plugins/*zaman basitçe yapabilirsiniz !plugins/**/*.jsonve!plugins/**/*.xml
Bernardo Dal Corno

ayrıca paket kilidini görmezden
Bernardo Dal Corno

@ z-khullah sağlanan bağlantıda, "Git klonlarının eklentisini yok saymak için isteğe bağlı" ifadesi verilir çünkü bazen içlerindeki kodu değiştiririz, bu nedenle tüm dosyaları görmezden gelemeyiz. İdeal olarak, görmezden gelebiliriz, ancak eklentilerdeki sorunlar nedeniyle çevrimiçi öneriler var, özellikle cordova'ya yeni başlayan biri olarak yardımcı olacaktır. paket kilidi, bazı eklenti kurulumları her değiştiğinde 10'lu veya 20'li satırları değiştirir, bu yüzden bu aynı zamanda kod incelemesi yapmak istemediğimiz bir şeydir, ayrıca kilit dosyasını igoring ile şimdiye kadar herhangi bir sorun yaşamadık, paketten üretilir. json. Umarım bu bizim bakış açımızı sunmamıza yardımcı olur.
Manohar Reddy Poreddy

Evet, ancak desen aynı şeyi yalnızca daha az satırla yapar. Paket-kilidine gelince, o kesin node_modules yapısını gösterir beri ayıklama yardımcı olur, ama evet, bu isteğe olduğunu düşünüyorum
Bernardo Dal Corno


3

Şu adımları takip ettim:

  • cordova projesi oluştur

  • platform ekle

  • eklenti ekle

Proje oluşturmadan önce, oluşturulan dosyaları işleyip aktarırım. Proje oluşturduktan ve oluşturulan yeni dosyaları kontrol ettikten sonra. Bunları .gitignore'a eklemek için aldım:

/platforms/android/gradlew.bat

/ platformlar / android / build

/ platformlar / android / gradle

/ platformlar / android / libs

/platforms/android/gradlew.bat

/ platformlar / android / CordovaLib / build

/platforms/android/.gradle


0

Niko listesine ekliyorum:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

ve

*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt

2
Bunlar genellikle göz ardı etmek iyidir, Cordova'ya özgü .DS_Storedeğildir (Niko'nun cevabında olmadığı gibi ).
Jari Keinänen

Bunlar muhtemelen proje düzeyinde değil, genel bir gitignore'da ele alınmalıdır .
bdesham
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.