प्रोजेक्ट से कॉर्डोबा प्लगइन्स हटाना


103

किसी तरह मेरे ऐप में कई कॉर्डोवा प्लग इन इंस्टॉल हो जाते हैं और इसकी वजह से इसे लगभग सभी चीजों तक पहुंच की आवश्यकता होती है - मेरे कॉन्टैक्ट्स से लेकर करंट लोकेशन तक (भले ही इस ऐप को इसकी ज़रूरत न हो)।

इस एप्लिकेशन को जेनकिंस के माध्यम से बनाया गया है और जहां तक ​​मैं समझता हूं कि एक समाधान एकल कमांड के साथ हर प्लगइन को निकालना है, तो यह इस तरह होगा:

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 plugin rm -allलेकिन वह नहीं मिल सका)


1
Y फिर से खोलना एक शेल स्क्रिप्ट का निर्माण करता है, जो कॉर्डोवैप्लगिन सूची को कॉल करता है और फिर प्रत्येक लाइन के लिए
कॉर्डोवा

मैं केवल मेकफाइल के माध्यम से ऐसा कुछ कर सकता हूं। और यह भी कि मैं यूनिक्स कमांड लाइन के साथ अच्छा नहीं हूं।
mmmm

आप सभी प्लगइन्स को हटाने के लिए एक कमांड जोड़ने के लिए उनसे कॉर्डोवा प्रोजेक्ट में एक अनुरोध भरने का प्रयास कर सकते हैं ...
QuickFix

हाँ, ठीक है, मैं इतना समय तक इंतजार नहीं करता जब तक कि वे मेरे लिए एक नया आदेश नहीं जोड़ते ..
mmmm

जवाबों:


246

सबसे पहले, आपको अपने प्लगइन्स को सूचीबद्ध करना चाहिए:

cordova plugin list

इस परिणाम के साथ, आप बस कर सकते हैं:

cordova plugin remove <PLUGIN_NAME>

उदाहरण के लिए:

cordova plugin remove org.apache.cordova.media

आशा करता हूँ की ये काम करेगा।


किसी कारण से मेरी VS2013 परियोजना किसी भी सूची में नहीं है और हटाने से काम नहीं होता है। पुराने फैशन config.xml एडिटिंग और प्लगइन फोल्डर को डिलीट कर दिया ...
एंथनी हॉर्ने

8
उस आदमी ने एक बार में सभी को हटाने के लिए एक आदेश मांगा। यह एक समय में केवल एक को हटाने के लिए एक सरल प्रलेखित उत्तर है।
Imon

8
ऐसा करने के लिए बेहतर है cordova plugin remove <PLUGIN_NAME> --saveकि यह स्वतः ही config.xml से हटा दिया जाए
kamayd

19

आप इसे बैश के साथ भी कर सकते हैं (अपने कोरडोवा प्रोजेक्ट डायरेक्टरी में जाने के बाद):

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

क्या आपने इसका परीक्षण किया?
हामिद अरघी

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। त्रुटि से, ऐसा लगता है कि प्लगइन्स में से एक शारीरिक रूप से आपके प्रोजेक्ट में मौजूद नहीं है। इस विधि का उपयोग करके आप उस प्लगइन को पा सकते हैं।
हामिद तवाकोली

10

कॉर्डोवा-चेक-प्लग-इन का v2.0.0 आपको एक प्रोजेक्ट में सभी प्लगइन्स को हटाने में सक्षम बनाता है:

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

यह प्रत्येक प्लगइन को हटाने के लिए कॉर्डोवा सीएलआई का उपयोग करने का प्रयास करेगा, लेकिन यदि यह विफल रहता है तो यह प्लगइन को हटाने के लिए मजबूर करेगा platforms/और plugins/

यदि आप config.xml से भी निकालना चाहते हैं, तो उपयोग करें:

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

अस्वीकरण: मैं कॉर्डोवा-चेक-प्लगइन्स का लेखक हूं


$ कॉर्डोवा-चैक-प्लग-इन-वर्व-ऑल-सेव सभी प्लगइन्स को हटा रहा है ... -FATAL ERROR: इंस्टॉल किए गए प्लगइन्स को सूचीबद्ध करते समय स्थानीय / वैश्विक कॉर्डोबा या ग्लोबल फोनगैप CLI कमांड को खोजने में विफल - सुनिश्चित करें कि आपके पास कॉर्डोवा नॉर्मा मॉड्यूल है जो स्थानीय रूप से स्थापित है। अपने प्रोजेक्ट फ़ोल्डर में या विश्व स्तर पर। त्रुटि: कमांड विफल: फोनगैप -v 'फोनगैप' को आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है।
नागा

@ आपको अपनी वैश्विक npm निर्देशिका में कॉर्डोवा या फोनगैप स्थापित करने की आवश्यकता है जो डिफ़ॉल्ट उपसर्ग npm config चर या जो कुछ भी आप इसे अपने .npmrc / npmrc फ़ाइलों में सेट करते हैं, द्वारा निर्दिष्ट किया जाता है। सबसे अधिक संभावना है, तुम्हारा है C:\Users\yourusername\AppData\Roaming\npmअगर आप विंडोज या /usr/localUNIX कर्नेल पर चल रहे हैं । आप यह npm config get prefix
जान

9

टर्मिनल (osx) से मैं आमतौर पर उपयोग करता हूं

cordova plugin -l | xargs cordova plugins rm

पाइप, पाइप सब कुछ!

थोड़ा विस्तार करने के लिए: यह कमांड परिणाम के माध्यम से लूप करेगा cordova plugin -lऔर इसे फीड करेगाcordova plugins rm

xargs उन आदेशों में से एक है, जिनके बारे में आपको आश्चर्य है कि आप पहले क्यों नहीं जानते थे। देखिये यह टट्टी।


1
कॉर्डोवा 9.0.0 के रूप में यह अब सही ढंग से काम नहीं करता है, JVE999 का काम करता है।
बाला क्लार्क

4

मैं इस अजगर एक लाइनर के साथ यह कर:

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]"

जाहिर है कि यह किसी भी तरह की त्रुटि की स्थिति को संभालता नहीं है, लेकिन यह काम पूरा कर लेता है।


बस एक शेल स्क्रिप्ट का उपयोग करें। मिश्रण में स्वयं निर्भरता के साथ एक और प्रोग्रामिंग भाषा फेंकना कॉर्डोवा को और भी बड़ा गड़बड़ बना देता है।
tfmontague

2

जहां तक ​​मुझे कॉर्डोवा से याद है, आपके पास "रेस" फ़ोल्डर में एक xml फ़ाइल होनी चाहिए जिसमें आपके प्रोजेक्ट में उपयोग किए गए प्लगइन्स की सूची हो। आपको शायद उन अप्रयुक्त प्लगइन्स को सूची से हटाने की आवश्यकता है। और आपको संबंधित फ़ाइलों को भी हटा देना चाहिए।


इस दास के लिए मेरी शारीरिक पहुँच नहीं है। इस तरह से नहीं किया जा सकता है।
एमएमएम

2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android

1
आगे बढ़ें और अपने उत्तर में कुछ संदर्भ या स्पष्टीकरण जोड़ें।
जोए फिलिप्स

1

यह कॉर्डोवा में प्लगइन्स को हटाने के लिए कमांडलाइन है

cordova plugin remove <pluginid>

उदाहरण के लिए, मैं दौड़ा cordova pluginऔर प्लगइन्स की एक सूची मिली, फिर मैंने प्लगइन का उपयोग अनइंस्टॉल करने के लिए किया

cordova plugin remove com.monday.contact-chooser

आप टाइप करके कमांडलाइन की मदद ले सकते हैं

cordova help <command>


कॉर्डोबा प्लगइन हटा दें। com.monday.contact-chooser के रूप में त्रुटि दे रहा है - त्रुटि: प्लगइन "कॉर्डोवा-प्लगइन-नाम" परियोजना में मौजूद नहीं है। देख लो cordova plugin list
यादव

कृपया अपनी पोस्ट को हटा दें, जो प्रश्न पूछा गया था "क्या कोई कमांड है जो सभी प्लगइन्स को हटाता है"।
tfmontague

1

स्थापित प्लगइन्स की सूची को संसाधित करने पर आधारित स्क्रिप्ट्स काम नहीं कर सकती हैं क्योंकि इंस्टॉल किए गए प्लगइन्स (ई, जी, कॉर्डोवा-प्लगइन-फाइल और कॉर्डोवा-प्लगइन-फाइल-ट्रांसफर) के बीच निर्भरताएं हैं।

उदाहरण में, स्क्रिप्ट पहले फ़ाइल प्लगइन को खोज लेगी, फिर इसे हटाने की कोशिश करेगी और हमें एक त्रुटि मिलेगी क्योंकि फ़ाइल-स्थानांतरण के लिए इसकी आवश्यकता होती है। इसलिए, हमारे पास होगा


यह स्थापित प्लगइन्स के बीच निर्भरता के बारे में एक अच्छा बिंदु है। मुझे लगता है कि एक बल ध्वज है --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"

यदि कोई विशेषाधिकार समस्या है, तो उदाहरण के लिए, यदि आप एक * nix सिस्टम पर हैं, तो sudo के साथ चलाएं:

sudo cordova plugin remove cordova.plugin_name

तो फिर तुम जोड़ सकते हैं --save config.xml फ़ाइल से निकालने के लिए। उदाहरण के लिए:

cordova plugin remove cordova.plugin_name --save

0
  • फ़ोल्डर तक पहुँचें
  • प्लगइन्स सूची (कॉर्डोवा प्लगइन सूची)
  • आयनिक कॉर्डोवा प्लगइन "प्लगइननाम" को हटा दें

ठीक होना चाहिए!


0

यदि उपरोक्त समाधान काम नहीं करता है और आपको कोई अनहेल्ड वादा अस्वीकृति मिली है, तो चरणों का पालन करने का प्रयास करें:

  1. कॉर्डोवा परियोजना को साफ करें

    कॉर्डोवा साफ

    1. प्लेटफॉर्म निकालें

cordova platform android / ios को हटा दें

  1. फिर प्लगइन निकालें

कॉरडोवा प्लगइन निकालें

  1. प्लेटफार्मों को जोड़ने और परियोजना को चलाने के लिए यह मेरे लिए काम किया।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.