Saya baru saja mencoba membuat proyek phonegap 3.0 baru ... Catatan: Saya baru mengenal phonegap. Bagaimanapun, saya melihat folder proyek berisi:
.cordova
merges
platforms
plugins
www
Dan setelah mencoba, phonegap local run android
saya melihat banyak file biner / yang dihasilkan di platforms/android
. Ini membuat saya bertanya-tanya, bagian mana dari struktur folder ini yang harus saya tambahkan ke repositori git saya. Biasanya, saya akan menganggap praktik yang sangat buruk untuk melakukan file biner. Oleh karena itu, saya biasanya akan menambahkan pola seperti bin/
, obj/
, *.o
, *.pyc
dll untuk .gitignore
menghindari polusi repositori git saya dengan hal-hal yang hanya berfungsi untuk membuat menggabungkan konflik.
Tentunya, www
harus ditambahkan ke git, tapi bagaimana dengan bagian lain dari proyek tersebut. Sampai sejauh mana mereka merupakan produk dari kode sumber, dan sejauh mana mereka konfigurasi proyek?
Apa yang kamu kerjakan? Memang saya baru jadi saya hampir tidak mengerti apa yang masuk akal di sini ...
Jawaban:
Jawabannya bergantung pada platform mana yang Anda kembangkan aplikasi phongap, dan apakah Anda mengikuti struktur direktori standar.
Jika struktur direktori proyek Anda standar, maka Anda dapat memulai dari gitignore ini dan memodifikasinya sesuai kebutuhan Anda.
Prinsipnya, Anda harus mengecualikan semua file yang dihasilkan seperti direktori
bin/
dangen/
. Jika Anda mengembangkan versi Android dari aplikasi Anda, Anda juga harus mengecualikan file build*.apk
.Semua file yang dihasilkan di
android
subdirektori harus dikecualikan juga:sumber
Memperluas jawaban @Jake Moshenko:
Saya suka ide untuk menghilangkan
platforms
direktori. Bahkan, saya bisa mengecualikan direktoriplugins
danplatforms
. Titik awal yang baik untuk.gitignore
:Masalah dengan ini adalah salinan repo yang bersih harus dimulai sebelum Anda benar-benar dapat bekerja dengannya. Mungkin masuk akal untuk membuat skrip init seperti:
Peringatan untuk pendekatan ini adalah bahwa hal itu membuatnya sedikit lebih menantang untuk menyesuaikan kode / konfigurasi aplikasi khusus platform di luar apa yang didukung oleh phonegap / cordova (yaitu dukungan orientasi layar).
Pembaruan: Bash Gist
Inti ini berisi skrip yang lebih lengkap untuk menangani proyek yang tidak menjalankan direktori
plugins
danplatforms
. Ini menyediakan mekanisme untuk menyalin ikon dan gambar splashscreen dari www ke direktori platform (untuk iOS dan Android), menginstal plugin, dan menangani file spesifik platform yang harus ditambahkan ke kontrol versi.Pembaruan: Grunt Gist
Berikut adalah inti lain yang merupakan port Grunt dari skrip bash yang disebutkan di atas. (Terima kasih kepada @obie karena menyarankan mendengus).
sumber
platform-merges
direktori. Misalnya, Anda bisa berkomitmenplatform-merges/android/AndroidManifest.xml
. Pendekatan ini bekerja dengan baik untuk proyek sederhana, tetapi dapat memperumit proyek yang lebih besar.rm -rf platforms plugins
.Jadi saya menemukan ini melalui trial and error. The
platforms
direktori dapat dihilangkan jika Anda menggunakan phonegap membangun lokal atau remote, seperti yang dihasilkan dengan cepat. Semua folder lain, termasuk folder tersembunyi.cordova
diperlukan.sumber
.cordova
folder - mengapa Anda mengatakan @Jake Moshenko diperlukan?Saya hanya ingin meninggalkan pengalaman saya dengan masalah ini dan pendekatan yang akhirnya kami ikuti.
Dalam proyek phonegap kami, kami mulai melakukan semua file kecuali folder / platform menggunakan file .gitignore. Kami berpikir seperti ini, ketika pengembang mengkloning repositori, satu-satunya tindakan yang harus dilakukan adalah mengeksekusi:
phonegap / cordova menambahkan platform
Tapi ternyata tidak. Setelah platform ditambahkan dan kami mencoba mengompilasi, kesalahan muncul dan aplikasi tidak terpasang di perangkat.
Melihat log, kami mendapat beberapa klik bahwa kesalahan ini disebabkan oleh plugin. Jadi kami memutuskan untuk memasang ulang semua plugin yang kami gunakan dalam proyek dan agar aplikasinya berjalan dengan benar.
Jadi saran saya adalah simpan di repositori semua konten dikurangi platform folder dan plugin. Buat dan unggah ke repositori file README dengan daftar plugin yang digunakan dalam proyek.
Dengan cara ini, ketika pengembang mengkloning repositori, dia harus:
1.- Tambahkan platform: phonegap / cordova tambahkan platform "platform"
2.- Tambahkan plugin: plugin phonegap / cordova tambahkan "plugin"
Semoga ini membantu!
Salam.
sumber
Banyak hal ini sudah tua dan tidak benar-benar berlaku untuk versi terbaru Apache Cordova. Saya menggunakan Apache Cordova 5.1.1 dan .gitignore ini memungkinkan saya untuk tetap menyesuaikan dengan ikon khusus dll sambil memblokir semua hal yang tidak perlu kami versi untuk Android dan iOS. Ya .gradle digunakan jadi jangan menghapusnya!
sumber
www/
folder di sana? Dalam aplikasi saya, itu sebenarnya adalah sebagian besar hal yang berguna dari kehidupan aplikasi web.www/
karena konten yang dihasilkan oleh skrip build kustom. Anda tidak benar-benar menginginkan file sumber di sana.Meskipun ini agak preferensi pribadi, saya menggunakan ini (untuk proyek khusus android). Menghapus sebagian besar, tetapi tetap mempertahankan apa yang biasa
sumber