การลบปลั๊กอิน Cordova ออกจากโครงการ


103

อย่างไรก็ตามในแอปของฉันมีการติดตั้งปลั๊กอิน Cordova จำนวนมากและด้วยเหตุนี้จึงต้องมีการเข้าถึงเกือบทุกอย่างตั้งแต่ผู้ติดต่อของฉันไปจนถึงตำแหน่งปัจจุบัน (แม้ว่าแอปนี้จะไม่ต้องการสิ่งนี้ก็ตาม)

แอพนี้สร้างผ่านเจนกินส์และเท่าที่ฉันเข้าใจวิธีแก้ปัญหาหนึ่งคือการลบทุกปลั๊กอินด้วยคำสั่งเดียวดังนั้นมันจะเป็นดังนี้:

cordova plugin rm org.apache.cordova.battery-status
cordova plugin rm org.apache.cordova.camera
cordova plugin rm org.apache.cordova.contacts
cordova plugin rm org.apache.cordova.geolocation
cordova plugin rm org.apache.cordova.media
cordova plugin rm org.apache.cordova.media-capture
cordova plugin rm org.apache.cordova.splashscreen
cordova plugin rm org.apache.cordova.vibration

แต่บางครั้งก็แสดงข้อผิดพลาดและเมื่อเจนกินส์เกิดข้อผิดพลาดใด ๆ ก็จบลงด้วยความล้มเหลวของการสร้างดังนั้นมีคำสั่งใดที่ลบปลั๊กอินทั้งหมดหรือไม่? (ในระหว่างการติดตั้งปลั๊กอินพื้นฐานที่ต้องใช้แอปใด ๆ ในการทำงานจะถูกเพิ่มโดยอัตโนมัติผ่าน Cordova ดังนั้นฉันจึงมองหาบางส่วนcordova plugin rm -allแต่ไม่พบ)


1
Y จะคอมเมนต์สร้างเชลล์สคริปต์ที่เรียกรายการ Cordovaplugin จากนั้นสร้าง Cordova plugin rm สำหรับแต่ละบรรทัดที่ส่งคืน
QuickFix

ฉันสามารถทำบางอย่างเช่นนั้นผ่าน makefile เท่านั้น และฉันก็ไม่ค่อยดีกับบรรทัดคำสั่ง unix
mmmm

คุณสามารถลองกรอกคำขอในโครงการ Cordova เพื่อขอให้พวกเขาเพิ่มคำสั่งเพื่อลบปลั๊กอินทั้งหมด ...
QuickFix

ใช่ฉันไม่ค่อยมีเวลารอจนกว่าพวกเขาจะเพิ่มคำสั่งใหม่ให้ฉัน ..
mmmm

คำตอบ:


246

ขั้นแรกคุณควรแสดงรายการปลั๊กอินของคุณ:

cordova plugin list

ด้วยผลลัพธ์นี้คุณสามารถทำได้ง่ายๆ:

cordova plugin remove <PLUGIN_NAME>

ตัวอย่างเช่น:

cordova plugin remove org.apache.cordova.media

หวังว่าจะช่วยได้


ด้วยเหตุผลบางประการโครงการ VS2013 ของฉันไม่แสดงรายการใด ๆ และการลบไม่ทำงาน ไปสู่การแก้ไข config.xml แบบเก่าและการลบโฟลเดอร์ปลั๊กอิน ...
Anthony Horne

8
ผู้ชายขอคำสั่งให้ลบทีละรายการ นี่เป็นคำตอบแบบเอกสารง่ายๆที่จะลบทีละคำตอบเท่านั้น
Imon

8
จะดีกว่าcordova plugin remove <PLUGIN_NAME> --saveที่จะลบออกจาก config.xml โดยอัตโนมัติ
kamayd

19

คุณสามารถทำได้ด้วย bash เช่นกัน (หลังจากเปลี่ยนเป็นไดเรกทอรีโครงการ Cordova ของคุณ):

for i in `cordova plugin ls | grep '^[^ ]*' -o`; do cordova plugin rm $i; done

คุณได้ทดสอบหรือไม่?
Hamid Araghi

11

คุณสามารถใช้: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm

และใช้cordova plugins listเพื่อตรวจสอบว่าปลั๊กอินถูกลบทั้งหมดหรือไม่


ไม่ได้ผล รับข้อผิดพลาดต่อไปนี้:Error: Plugin "{}" is not present in the project. See `cordova plugin list`
tfmontague

1
@tfmontague ลองทำด้วยตนเองcordova plugins lsแล้วดูว่าคุณสามารถลบปลั๊กอินทีละรายการโดยใช้cordova plugins rm plugin_nameไฟล์. จากข้อผิดพลาดดูเหมือนว่าปลั๊กอินตัวใดตัวหนึ่งไม่มีอยู่จริงในโปรเจ็กต์ของคุณ ใช้วิธีนี้คุณจะพบปลั๊กอินนั้น
Hamid Tavakoli

10

v2.0.0 ของCordova-check-pluginsช่วยให้คุณสามารถลบปลั๊กอินทั้งหมดในโปรเจ็กต์:

$ npm install -g cordova-check-plugins
$ cordova-check-plugins --remove-all

มันจะพยายามที่จะใช้คอร์โดวา CLI เพื่อลบปลั๊กอินแต่ละ แต่ถ้าล้มเหลวก็จะบังคับให้การกำจัดของปลั๊กอินและplatforms/plugins/

หากคุณต้องการลบออกจาก config.xml ให้ใช้:

$ cordova-check-plugins --remove-all --save

ข้อจำกัดความรับผิดชอบ: ฉันเป็นผู้เขียน Cordova-check-plugins


$ cordova-check-plugins - ลบทั้งหมด - บันทึกการลบปลั๊กอินทั้งหมด ... ในโฟลเดอร์โครงการของคุณหรือทั่วโลก ข้อผิดพลาด: คำสั่งล้มเหลว: phonegap -v 'phonegap' ไม่รู้จักเป็นคำสั่งภายในหรือภายนอกโปรแกรมที่ใช้งานได้หรือไฟล์แบตช์
พญานาค

@Naga คุณต้องติดตั้ง Cordova หรือ phonegap ในไดเรกทอรี npm ส่วนกลางของคุณซึ่งระบุโดยตัวแปรกำหนดค่า npm คำนำหน้าเริ่มต้นหรืออะไรก็ตามที่คุณตั้งค่าไว้ในไฟล์. npmrc / npmrc ของคุณ เป็นไปได้มากว่าคุณอยู่ในC:\Users\yourusername\AppData\Roaming\npmกรณีที่คุณใช้งานบน Windows หรือ/usr/localบนเคอร์เนล UNIX คุณสามารถค้นหาคำนำหน้าของคุณได้โดยพิมพ์ใน terminal / commandnpm config get prefix
NoodleOfDeath

9

จากเทอร์มินัล (osx) ฉันมักจะใช้

cordova plugin -l | xargs cordova plugins rm

ท่อท่อทุกอย่าง!

เพื่อขยายบิต: นี้ห่วงคำสั่งประสงค์ผ่านผลของและอาหารมันcordova plugin -lcordova plugins rm

xargsเป็นหนึ่งในคำสั่งที่คุณสงสัยว่าทำไมคุณไม่เคยรู้มาก่อน ดูกวดวิชานี้


1
เนื่องจาก Cordova 9.0.0 จะทำงานไม่ถูกต้องอีกต่อไป JVE999 ทำงานได้
Bala Clark

4

ฉันทำกับ python one-liner:

python -c "import subprocess as sp;[sp.call('cordova plugin rm ' + p.split()[0], shell=True) for p in sp.check_output('cordova plugin', shell=True).split('\n') if p]"

เห็นได้ชัดว่ามันไม่ได้จัดการกับเงื่อนไขข้อผิดพลาดใด ๆ แต่ก็ทำให้งานเสร็จ


เพียงแค่ใช้เชลล์สคริปต์ การโยนภาษาการเขียนโปรแกรมอื่นที่มีการอ้างอิงของตัวเองเข้าไปในส่วนผสมทำให้ Cordova มีระเบียบมากขึ้น
tfmontague

2

เท่าที่ฉันจำได้จาก Cordova คุณควรมีไฟล์ xml ในโฟลเดอร์ "res" ที่มีรายการปลั๊กอินที่ใช้ในโครงการของคุณ คุณอาจต้องลบปลั๊กอินที่ไม่ได้ใช้ออกจากรายการ และคุณควรลบไฟล์ที่เกี่ยวข้องด้วย


ฉันไม่สามารถเข้าถึงทาสคนนี้ได้ ไม่สามารถทำได้ด้วยวิธีนี้
mmmm


1

นี่คือบรรทัดคำสั่งสำหรับการลบปลั๊กอินใน Cordova

cordova plugin remove <pluginid>

ตัวอย่างเช่นฉันวิ่งcordova pluginและได้รับรายการปลั๊กอินจากนั้นฉันใช้รหัสสำหรับปลั๊กอินเพื่อถอนการติดตั้ง

cordova plugin remove com.monday.contact-chooser

คุณสามารถขอความช่วยเหลือในบรรทัดคำสั่งได้โดยพิมพ์

cordova help <command>


ปลั๊กอิน Cordova ลบ com.monday.contact-chooser ให้ข้อผิดพลาดเป็น - ข้อผิดพลาด: ปลั๊กอิน "Cordova-plugin-name" ไม่มีอยู่ในโปรเจ็กต์ ดูcordova plugin list.
S.Yadav

โปรดลบโพสต์ของคุณคำถามที่ถามคือ "มีคำสั่งใดที่ลบปลั๊กอินทั้งหมด"
tfmontague

1

สคริปต์ที่ขึ้นอยู่กับการประมวลผลรายการปลั๊กอินที่ติดตั้งอาจไม่ทำงานเนื่องจากมีการอ้างอิงระหว่างปลั๊กอินที่ติดตั้ง (e, g, Cordova-plugin-file และ Cordova-plugin-file-transfer)

ในตัวอย่างสคริปต์จะค้นหาปลั๊กอินของไฟล์ก่อนจากนั้นสคริปต์จะพยายามลบออกและเราจะได้รับข้อผิดพลาดเนื่องจากการโอนไฟล์ต้องการ ดังนั้นเราจะต้องมี


นี่เป็นจุดที่ดีเกี่ยวกับการอ้างอิงระหว่างปลั๊กอินที่ติดตั้ง ฉันคิดว่ามีธงบังคับ--forceซึ่งจะลบปลั๊กอินโดยไม่คำนึงถึง ...
tfmontague

0

เมื่อรันคำสั่ง: cordova plugin remove <PLUGIN NAME>ตรวจสอบให้แน่ใจว่าคุณไม่ได้เพิ่มหมายเลขเวอร์ชันลงในชื่อปลั๊กอิน เพียงแค่ชื่อปลั๊กอินธรรมดาตัวอย่างเช่น:

cordova plugin remove cordova.plugin_name 

และไม่:

cordova plugin remove cordova.plugin_name 0.01 

หรือ

cordova plugin remove "cordova.plugin_name 0.01"

ในกรณีที่มีปัญหาเกี่ยวกับสิทธิ์ให้รันด้วย sudo หากคุณใช้ระบบ * nix ตัวอย่างเช่น:

sudo cordova plugin remove cordova.plugin_name

จากนั้นคุณสามารถเพิ่ม - บันทึกเพื่อลบออกจากไฟล์ config.xml ตัวอย่างเช่น:

cordova plugin remove cordova.plugin_name --save

0
  • เข้าถึงโฟลเดอร์
  • แสดงรายการปลั๊กอิน (รายการปลั๊กอิน Cordova)
  • ปลั๊กอิน ionic cordova ลบ "pluginName"

น่าจะใช้ได้!


0

หากวิธีแก้ปัญหาข้างต้นไม่ได้ผลและคุณได้รับการปฏิเสธสัญญาที่ไม่สามารถจัดการได้ให้ลองทำตามขั้นตอน:

  1. ทำความสะอาดโครงการ Cordova

    Cordova สะอาด

    1. ลบแพลตฟอร์ม

แพลตฟอร์ม Cordova ลบ android / ios

  1. จากนั้นลบปลั๊กอิน

เอาปลั๊กอิน Cordova ออก

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