Cordova 5.0.0: ไฟล์ใดที่ฉันควรผูกมัดกับคอมไพล์?


89

ฉันใช้ Cordova 5.0.0 และฉันมีโครงสร้างโครงการต่อไปนี้:

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

คำถามของฉันตอนนี้คือฉันสามารถละโฟลเดอร์ใดต่อไปนี้ได้ ฉันถามเพราะฉันทำงานบนแพลตฟอร์มที่แตกต่างกันสามแพลตฟอร์ม ฉันพัฒนาบน linux สำหรับ Android, windows สำหรับ windows phone และบน mac สำหรับ ios หากฉันยอมรับโครงการทั้งหมดฉันมักจะได้รับคำเตือนและข้อผิดพลาดสำหรับแพลตฟอร์มที่ไม่รองรับ

สิ่งที่ฉันต้องการคือที่เก็บ git แบบเรียบง่าย

ปัญหาหนึ่งเช่นปลั๊กอิน เมื่อฉันลบโฟลเดอร์ปลั๊กอินออกจากที่เก็บฉันต้องเพิ่มลงในแต่ละแพลตฟอร์มที่กำลังพัฒนาด้วยตนเอง

ปัญหาอีกประการหนึ่งคือโฟลเดอร์ทรัพยากร ฉันสร้างไอคอนและสแปลชสกรีนโดยอัตโนมัติโดยใช้ไอออนิก ตอนนี้ฉันพยายามสร้างโปรเจ็กต์บน iOS มันบ่นเกี่ยวกับรูปภาพสำหรับ Android

ฉันต้องการอะไรและฉันจะละเว้นอะไรได้บ้าง?

คำตอบ:


121

คุณสามารถเพิกเฉยต่อแพลตฟอร์มและไดเร็กทอรีปลั๊กอินได้ตราบเท่าที่คุณยังไม่ได้เพิ่มโค้ดที่กำหนดเองลงไป

เมื่อเพิ่มปลั๊กอินและแพลตฟอร์มให้เพิ่ม - บันทึกคำสั่ง เช่น

cordova platform add ios@3.8.0 --save

หรือ

cordova plugin add cordova-plugin-device --save

สิ่งนี้จะบันทึกบันทึกของปลั๊กอินและแพลตฟอร์มที่คุณใช้ลงในไฟล์ config.xml ของคุณ เมื่อคุณเรียกใช้cordova prepareหรือcordova buildปลั๊กอินและแพลตฟอร์มทั้งหมดที่อยู่ใน config.xml จะได้รับการติดตั้งหากยังไม่ได้ติดตั้ง

คุณยังสามารถระบุแพลตฟอร์มในการเตรียมและสร้าง ดังนั้นหากคุณใช้ Mac คุณสามารถตรวจสอบที่เก็บ git และเรียกใช้cordova prepare iosเพื่อติดตั้งเฉพาะแพลตฟอร์ม ios และปลั๊กอิน


ซึ่งใช้ได้กับปลั๊กอินและแพลตฟอร์มที่มีอยู่เช่นกัน Cordova จะละเว้นการติดตั้งใหม่ แต่จะเพิ่มปลั๊กอินลงในไฟล์กำหนดค่า
rnevius

4
cordova buildไม่ได้กู้คืนแพลตฟอร์ม แต่cordova prepareทำบน Cordova 6.0
Victor Sergienko

43
หากคุณลืม--saveแพลตฟอร์มและปลั๊กอินเพียงใช้cordova platform saveและcordova plugin save(หมายเหตุไม่--) จากนั้นจะเพิ่มบรรทัดที่เกี่ยวข้องลงในconfig.xmlไฟล์.
jcaron

1
นี้ทำงานได้ดีสำหรับการแต่ไม่ได้สำหรับ platforms จะไม่ทำงานอย่างน้อยและ ฉันยอมแพ้และบันทึกทั้งหมดลงในคอมไพล์ pluginscordova prepareplugin.xmlsrcplugins
Jayen

7
ณ Cordova 7.0.0 พฤติกรรมเริ่มต้นถูกเปลี่ยนเป็นการบันทึก cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit

42

ขึ้นอยู่กับแพลตฟอร์ม

คุณสามารถใช้ตัวอย่างของ. gitignore นี้และปรับแต่งตามความต้องการของคุณ

# 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

มันจะไม่สมเหตุสมผลที่จะเพิกเฉยต่อแพลตฟอร์ม / android / res? AFAIK / understnad สิ่งเหล่านี้ถูกสร้างขึ้นในระหว่างกระบวนการสร้าง (จากโฟลเดอร์ res / resources ในไดเร็กทอรี parent (project))
Tomer Cagan

4
ฉันสามารถเพิกเฉยplatforms/*/กับ Cordova 6.3.0 และทำcordova prepareในระบบอื่น ๆ
Jayen

ไฟล์ที่ไม่สนใจนี้ดูเหมือนจะมีไฟล์ที่สร้างขึ้นจำนวนมากดังนั้นฉันคิดว่ามันต้องแคบกว่านี้
Anders Lindén

1
ควรรวมไว้ด้วยnode_modulesหรือไม่? ฉันทำ.
Cameron A. Ellis

@ คาเมรอนเอเอลลิสฉันมีnode_modulesเช่นกัน คุณเพิ่มหรือไม่ ไม่มีวิธีดาวน์โหลดโมดูลโหนดเหล่านี้บ้าง
wviana

18

คุณสามารถบันทึกแพลตฟอร์มและปลั๊กอินได้ในภายหลังโดยใช้คำสั่งต่อไปนี้

แพลตฟอร์มการประหยัดมวล

$ cordova platform save

ปลั๊กอินประหยัดจำนวนมาก

$ cordova plugin save

โปรดทราบว่าไม่มี - ในคำสั่งด้านบน

อีกอย่างหนึ่งหลังจากดึง repo บนเครื่องอื่นคุณเพียงแค่เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างและดึงปลั๊กอินและแพลตฟอร์มโดยอัตโนมัติ

$ cordova prepare

สำหรับข้อมูลอ้างอิงเพิ่มเติมโปรดไปที่ลิงค์ด้านล่าง https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

เคล็ดลับ Cordova : อ้างอิงเอกสารอย่างเป็นทางการก่อนสิ่งอื่นใดเพื่อให้ได้โซลูชันที่เหมาะสม


16

ฉันไม่รู้คำตอบ แต่ฉันพบบางสิ่งที่อาจช่วยได้ คำขอดึงนี้ได้รับการอนุมัติแล้ว

นี่คือไฟล์ :

# Mac
.DS_Store

# Node
npm-debug.log
/node_modules

# Cordova
/platforms
/plugins

# res
resources/signing


4

คำตอบอื่น ๆ ส่วนใหญ่มีอายุ 2/3 ปี

อัปเดต 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/

อย่างที่คุณเห็นฉันแสดงความคิดเห็นเกือบทุกบรรทัด (ทุกบรรทัดขึ้นต้นด้วย #) นี่เป็นเพราะฉันพบปัญหาเกี่ยวกับการเปลี่ยนแปลงเวอร์ชันปลั๊กอินและตัดสินใจที่จะทราบว่าเกิดอะไรขึ้นกับการอัปเดตปลั๊กอิน โดยพื้นฐานแล้วไฟล์แพลตฟอร์มและปลั๊กอินทั้งหมดจะรวมอยู่ในคอมมิตตอนนี้ชีวิตของฉันสงบสุข

2019:
ผมกล่าวกับนี้

หลังจากพัฒนาและเผยแพร่แอพแล้วมันก็กลายเป็นด้านล่าง:
(หากคุณเบี่ยงเบนจากด้านล่างแสดงความคิดเห็นด้านล่างเราสามารถเรียนรู้จากกันและกัน)

# 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
คุณก็สามารถทำได้plugins/*แล้ว!plugins/**/*.jsonและ!plugins/**/*.xml
เบอร์นาร์โด Dal Corno

ฉันเคยเห็นคำแนะนำว่าอย่าเพิกเฉยต่อการล็อกแพ็คเกจ
Bernardo Dal Corno

@ z-khullah ในลิงก์ที่ให้มาจะได้รับ "ตัวเลือกในการละเว้นปลั๊กอิน Git โคลน" เนื่องจากบางครั้งเราเปลี่ยนรหัสในไฟล์จึงไม่สามารถเพิกเฉยต่อไฟล์ทั้งหมด ตามหลักการแล้วเราสามารถเพิกเฉยได้ แต่มีข้อเสนอแนะออนไลน์เนื่องจากปัญหาในปลั๊กอินโดยเฉพาะอย่างยิ่งในฐานะมือใหม่ที่จะใช้ Cordova มันจะช่วยได้ package-lock จะเปลี่ยน 10s หรือ 20s ของแต่ละครั้งที่มีการเปลี่ยนแปลง plugin installatoin ดังนั้นนี่จึงเป็นสิ่งที่เราไม่ต้องการตรวจสอบโค้ดเช่นกันโดยการล็อกไฟล์ igoring เราไม่มีปัญหาใด ๆ จนถึงตอนนี้มันถูกสร้างขึ้นจากแพ็คเกจ json. หวังว่าจะช่วยในการให้มุมมองของเรา
Manohar Reddy Poreddy

ใช่ แต่รูปแบบจะเหมือนกันเพียง แต่มีเส้นน้อยลง สำหรับการล็อกแพ็กเกจจะช่วยในการดีบักเนื่องจากแสดงโครงสร้าง node_modules ที่แน่นอน แต่ใช่ฉันคิดว่าเป็นทางเลือก
Bernardo Dal Corno


3

ฉันทำตามขั้นตอนเหล่านี้:

  • สร้างโครงการ Cordova

  • เพิ่มแพลตฟอร์ม

  • เพิ่มปลั๊กอิน

ก่อนสร้างโครงการฉันยอมรับและพุชไฟล์ที่สร้างขึ้น หลังจากที่ฉันสร้างโครงการและตรวจสอบไฟล์ใหม่ที่สร้างขึ้น ฉันได้รับสิ่งเหล่านี้เพื่อเพิ่มใน. gitignore:

/platforms/android/gradlew.bat

/ platform / android / build

/ แพลตฟอร์ม / android / gradle

/ แพลตฟอร์ม / android / libs

/platforms/android/gradlew.bat

/ platform / android / CordovaLib / build

/platforms/android/.gradle


0

ฉันเพิ่มในรายการ Niko:

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

และ

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

2
โดยทั่วไปแล้วสิ่งเหล่านี้เป็นสิ่งที่ดีที่จะเพิกเฉยไม่เฉพาะเจาะจงกับ Cordova (เช่นเดียวกับ.DS_Storeไม่อยู่ในคำตอบของ Niko เช่นกัน)
Jari Keinänen

สิ่งเหล่านี้ควรได้รับการแก้ไขในgitignore ระดับโลกไม่ใช่ระดับหนึ่งของโครงการ
bdesham
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.