Cordova 5.0.0: File mana yang harus saya komit ke git?

89

Saya menggunakan Cordova 5.0.0 dan saya memiliki struktur proyek berikut:

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

Pertanyaan saya sekarang adalah: Manakah dari folder berikut yang dapat saya hilangkan? Saya menanyakannya karena saya bekerja pada tiga platform berbeda. Saya mengembangkan di linux untuk android, windows untuk windows phone dan di mac untuk ios. Jika saya melakukan keseluruhan proyek, saya selalu mendapatkan peringatan dan kesalahan untuk platform yang tidak didukung.

Yang saya inginkan adalah repositori git minimalis.

Salah satu masalah misalnya adalah plugin. Ketika saya menghapus folder plugin dari repositori, saya harus menambahkannya di setiap platform pengembangan saya secara manual.

Masalah lainnya adalah folder sumber daya. Saya secara otomatis membuat ikon dan splashscreens menggunakan ionic. Ketika saya sekarang mencoba membangun proyek di ios, itu mengeluh tentang gambar untuk android.

Jadi apa yang saya butuhkan dan apa yang bisa saya hilangkan?

Mulgard
sumber

Jawaban:

122

Anda dapat mengabaikan direktori platform dan plugin selama Anda belum menambahkan kode khusus apa pun di dalamnya.

Saat menambahkan plugin dan platform, tambahkan --save ke perintah. misalnya

cordova platform add [email protected] --save

atau

cordova plugin add cordova-plugin-device --save

Ini akan menyimpan catatan plugin dan platform yang Anda gunakan ke file config.xml Anda. Saat Anda menjalankan cordova prepareatau cordova buildsemua plugin dan platform Anda yang terdaftar di config.xml akan diinstal jika belum dipasang.

Anda juga dapat menentukan platform dalam mempersiapkan dan membangun. Jadi, jika Anda menggunakan Mac, Anda dapat memeriksa repositori git dan menjalankan cordova prepare iosuntuk menginstal platform dan plugin ios saja.

Connor
sumber
Ini berfungsi untuk plugin dan platform yang ada juga. Cordova hanya akan mengabaikan penginstalan ulang, tetapi akan menambahkan plugin ke file konfigurasi.
rnevius
4
cordova buildtidak memulihkan platform, tetapi cordova preparemelakukannya di Cordova 6.0.
Victor Sergienko
43
Jika Anda lupa --saveplatform dan plugin, cukup gunakan cordova platform savedan cordova plugin save(note no --), dan itu akan menambahkan baris yang relevan ke Anda config.xml.
jcaron
1
ini bekerja dengan baik untuk platformstetapi tidak untuk plugins. cordova preparetidak akan bekerja dengan setidaknya plugin.xmldan src. saya menyerah dan hanya menyimpan semua pluginsuntuk git.
Jayen
7
pada cordova 7.0.0 perilaku default telah diubah menjadi menyimpan. cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit
42

Itu tergantung pada platformnya.

Anda dapat menggunakan contoh .gitignore ini dan menyesuaikannya dengan kebutuhan Anda.

# 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
sumber
bukankah masuk akal untuk mengabaikan juga platforms / android / res? AFAIK / understnad, ini dibuat selama proses pembangunan (dari folder res / resources di direktori induk (proyek)).
Tomer Cagan
4
saya bisa mengabaikan platforms/*/dengan cordova 6.3.0 dan melakukan cordova preparepada sistem lain.
Jayen
File abaikan ini sepertinya menyertakan banyak file yang dihasilkan, jadi perlu lebih sempit, saya kira.
Anders Lindén
1
Haruskah itu juga termasuk node_modules? Aku melakukannya.
Cameron A. Ellis
@ CameronA.Ellis saya punya node_modulesbaik. Apakah Anda menambahkannya? Apakah tidak ada cara untuk mendownload modul node ini.
wviana
18

Anda dapat menyimpan platform dan plugin setelahnya dengan menggunakan perintah berikut.

platform penyimpanan massal

$ cordova platform save

Penghematan massal plugin

$ cordova plugin save

Mohon dicatat bahwa tidak ada - dalam perintah di atas

Satu hal lagi, setelah mengambil repo di komputer lain Anda cukup menjalankan perintah berikut untuk menghasilkan dan mengambil plugin dan platform secara otomatis

$ cordova prepare

Untuk referensi lebih lanjut, kunjungi tautan di bawah ini. https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Kiat Cordova : Selalu merujuk ke dokumen resmi sebelum hal lain untuk mendapatkan solusi yang tepat.

Hitesh Chavda
sumber
4

Sebagian besar jawaban lainnya berumur 2/3 tahun.

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

Seperti yang Anda lihat, saya mengomentari sebagian besar baris (semua baris dimulai dengan #). Ini karena saya mengalami masalah dengan perubahan versi plugin, dan memutuskan untuk mengetahui apa yang terjadi dengan pembaruan plugin. Intinya semua file platform & plugin sudah termasuk dalam commit, sekarang hidup saya damai.

2019:
Saya menyatakan dengan ini .

Setelah mengembangkan & menerbitkan aplikasi, menjadi di bawah ini:
(Jika Anda menyimpang dari bawah, beri komentar di bawah, kita dapat belajar dari satu sama lain)

# 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
sumber
1
Anda hanya dapat melakukan plugins/*itu !plugins/**/*.jsondan!plugins/**/*.xml
Bernardo Dal Corno
juga saya telah melihat disarankan untuk tidak mengabaikan penguncian paket
Bernardo Dal Corno
@ z-khullah di link yang disediakan, "Opsional untuk mengabaikan plugin Git clone" diberikan karena terkadang kita mengubah kode di dalamnya, jadi tidak bisa mengabaikan semua file. Idealnya, kami dapat mengabaikan, tetapi ada saran online karena masalah plugin, terutama sebagai pemula di cordova, ini akan membantu. penguncian paket mengubah 10 atau 20 baris setiap kali beberapa plugin installatoin berubah, jadi ini juga sesuatu yang tidak ingin kami ulas kode, juga dengan menghapus file kunci kami tidak memiliki masalah apa pun sampai sekarang, itu dihasilkan dari paket. json. Harapan yang membantu dalam memberikan perspektif kita.
Manohar Reddy Poreddy
Ya, tetapi polanya melakukan hal yang sama, hanya dengan lebih sedikit garis. Untuk penguncian paket, ini membantu debugging karena ini menunjukkan struktur node_modules yang tepat, tapi ya, saya pikir ini opsional
Bernardo Dal Corno
1
@ManoharReddyPoreddy stackoverflow.com/questions/44206782/…
Adit Saxena
3

Saya mengikuti langkah-langkah ini:

  • buat proyek cordova

  • tambahkan platform

  • tambahkan plugin

Sebelum membangun proyek, saya berkomitmen dan mendorong file yang dihasilkan. Setelah saya membangun proyek dan memeriksa file baru yang dihasilkan. Saya mendapatkan ini untuk ditambahkan .gitignore:

/platforms/android/gradlew.bat

/ platforms / android / build

/ platforms / android / gradle

/ platforms / android / libs

/platforms/android/gradlew.bat

/ platforms / android / CordovaLib / build

/platforms/android/.gradle

Victor Hugo Calderon
sumber
0

Saya menambahkan ke daftar Niko:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

dan

*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt
Cédric Dromzée
sumber
2
Ini umumnya bagus untuk diabaikan, tidak khusus untuk Cordova (seperti .DS_Storetidak ada dalam jawaban Niko, juga).
Jari Keinänen
Ini mungkin harus ditangani di gitignore global , bukan di tingkat proyek.
bdesham