एक कमांड में कॉर्डोबा प्लगइन्स को अपडेट करें


124

मुझे आश्चर्य है कि कॉर्डोवा प्लगइन को अपडेट करने का एक आसान तरीका है?

मैंने गुगली की, एक हुक (@ वर्ष 2013) पाया, लेकिन यह 100% नहीं है जो मुझे चाहिए।

मुझे पता है कि मैं इसे दो चरणों में कर सकता हूं: rm, फिर जोड़ें लेकिन मैं एक बेहतर (आधिकारिक) तरीके की तलाश कर रहा हूं जो मेरी मदद कर सके कि कौन से प्लगइन्स का नया संस्करण है? और मैं उन सभी को एक कमांड में अपडेट कर सकता हूं। (ऐसे ही: npm अपडेट)

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

$ cordova plugin list
/* list all installed plugins, their dependencies, and newer versions */

$ cordova plugin update
/* update all of them for me */

यदि कोई आधिकारिक तरीका नहीं है, तो क्या कोई अन्य सहायक है? यो?


AFAIK मुझे ऐसा नहीं लगता
AtanuCSE

यहाँ एक bash स्क्रिप्ट है जो इस stackoverflow.com/a/36378949/5966317
nic.graziano

मैं एक कदम और आगे बढ़ा और मेरे आईओएस प्रोजेक्ट फ़ोल्डर में भाग गयाpod update
जैक्सनक्रा

जवाबों:


222

मैं प्लगइन अपडेट के लिए मैन्युअल रूप से जांच कर थक गया, इसलिए मेरे लिए इसे करने के लिए एक टूल बनाया: https://github.com/dpa99c/cordova-check-plugins

इसे विश्व स्तर पर स्थापित करें:

$ npm install -g cordova-check-plugins

फिर अपने कॉर्डोवा प्रोजेक्ट की जड़ से चलाएं। आप वैकल्पिक रूप से पुराने प्लगइन्स को अंतःक्रियात्मक रूप से या स्वचालित रूप से अपडेट कर सकते हैं, उदा

$ cordova-check-plugins --update=auto

CLI स्क्रीनशॉट


मुझे दूसरी पंक्ति चलाते समय त्रुटियां मिलीं: त्रुटि: प्लगइन: कॉर्डोवा-प्लगइन-स्टेटसबार स्रोत: npm: // कॉर्डोवा-प्लगइन-स्टेटसबार इंस्टॉल किया गया संस्करण: UNKNOWN - अनाथ प्रविष्टियों के लिए प्लगइन्स / fetch.json की जाँच करें। दूरस्थ संस्करण: 2.1.1 मैं इसे कैसे हल कर सकता हूं? धन्यवाद
Agnosco

@Agnosco इसका मतलब है कि प्लगइन स्थानीय संस्करण संख्या निर्धारित नहीं कर सकता है, शायद भ्रष्ट होने के कारण fetch.json। मैं प्रभावित प्लगइन को मैन्युअल रूप से हटाने और फिर से स्थापित करने का सुझाव दूंगा।
डेवल्डन

वह आश्चर्यजनक है ! अद्यतन करते समय कमांड देने की संभावना को जोड़ने के लिए एक संभावित वृद्धि होगी, जैसे फेसबुक प्लगइन के लिए यह स्वचालित रूप से अपडेट करना संभव होगा और इस समस्या को नहीं होगाError: Variable(s) missing (use: --variable APP_ID=value --variable APP_NAME=value)
जेरेमी बेलोलो

4
@JeremyBelolo cordova-check-plugins@1.1.4 अद्यतन करते समय चर को संरक्षित करने के लिए समर्थन जोड़ता है
डेवल्डन

1
@ अल-मोताफ़र आपने इस उद्देश्य को गलत समझा है कि सुरक्षा कमजोरियां एनपीएम द्वारा क्यों बताई जाती हैं। जैसा कि मैंने आपके द्वारा खोले गए मुद्दे में कहा था , एनपीएम द्वारा बताई गई पैकेज की कमजोरियाँ यहाँ अप्रासंगिक हैं क्योंकि यह एक सीएलआई उपकरण है जिसे एक स्थानीय देव मशीन पर तैनात करने के लिए डिज़ाइन किया गया है जिसमें केवल आपकी पहुंच होती है, न कि एक दूरस्थ सार्वजनिक-सामना करने वाले सर्वर की जहाँ वे कर सकते हैं। हैकर्स द्वारा शोषण किया जा रहा है।
डेवल्डन

61

आप इसे अपडेट नहीं कर सकते। आप क्या कर सकते हैं कॉर्डोवा प्लगइन की स्थापना रद्द करें और इसे फिर से जोड़ें।

cordova plugin rm https://github.com/apache/cordova-plugin-camera --save
cordova plugin add https://github.com/apache/cordova-plugin-camera --save

मुझे लगता --saveहै कि जरूरत नहीं है, देखें cordova.apache.org/docs/en/latest/guide/cli
क्लेमेंस ज़्लेप्टनिग

52

आयनिक अवस्था को आयनिक@3.7.0 पर चित्रित किया जाता है

यदि आप आयनिक और आयनिक क्ली का उपयोग कर रहे हैं, तो आप चला सकते हैं:

ionic state reset

जब तक आपके सभी प्लगइन की जानकारी आपके पैकेज में सहेज ली गई थी। पहले से ही, यह अनिवार्य रूप से आपके सभी प्लगइन्स के लिए एक rm / add करेगा। बस ध्यान दें कि यह आपके प्लेटफार्मों को भी rm / जोड़ेगा, लेकिन इससे कोई फर्क नहीं पड़ता।

यह तब भी अच्छा होता है जब आप अपने प्लगइन फ़ोल्डर को अपने रेपो से अनदेखा करते हैं, और किसी अन्य मशीन पर प्रोजेक्ट को सेटअप करना चाहते हैं।

जाहिर है कि यह सीधे सवाल का जवाब नहीं देता है, लेकिन कई लोग वर्तमान में दोनों का उपयोग कर रहे हैं, और यहां समाप्त हो जाएंगे।


यदि आपके पास config.xmlफ़ाइल में प्लग इन परिभाषित हैं , तो आप वास्तव में प्लगइन्स को केवल हटा सकते हैं, और प्लेटफार्मों पर एक आरएम / चक्र जोड़ सकते हैं। ionic platform addलापता प्लगइन्स को स्पॉट करेगा और उन्हें जोड़ देगा। लेकिन केवल उन्हीं को परिभाषित किया गया हैconfig.xml
A.Grandt

ionic state resetनिश्चित रूप से प्लगइन्स निकालता है - ionic state restoreउन्हें पुनः स्थापित करने की आवश्यकता हो सकती है।
ईएमसी

1
आयनिक स्थिति रीसेट - आयनिक-v1 में मूल्यह्रास किया गया है ताकि आप अब इस कमांड का उपयोग न कर सकें।
फ्रॉडमैन जी

1
[ERROR] आयनिक अवस्था को CLI 3.0 के रूप में हटा दिया गया है। हम सीधे कॉर्डोवा प्लगइन्स और प्लेटफार्मों का प्रबंधन करने के लिए कॉर्डोवा का उपयोग करने की सलाह देते हैं।
अनिल। .५३

31

Npmjs.org से एक और जवाब मिला

https://www.npmjs.com/package/cordova-plugin-update

मूल रूप से अपनी परियोजना में उपकरण स्थापित करना:

npm install -g cordova-plugin-update

जब किया तब कमांड चलाना होगा

cordova-plugin-update

और यह आपको अपडेट करने के लिए प्रेरित करेगा यदि कभी किसी प्लगइन का नया संस्करण उपलब्ध हो


मैंने इसे आजमाया लेकिन इसने config.xml से प्लगइन्स को हटा दिया, बस पैकेज में अपडेट किया। json
पीटर टी।

27

यहाँ एक बैश स्क्रिप्ट है जिसका मैं उपयोग करता हूं, OSX 10.11.3 पर काम करता है।

#!/bin/bash

PLUGINS=$(cordova plugin list | awk '{print $1}')

for PLUGIN in $PLUGINS; do
    cordova plugin rm $PLUGIN --save && cordova plugin add $PLUGIN --save
done

यह मदद कर सकता है अगर संघर्ष हो, प्रति शान की टिप्पणी । अंतर --forceहटाते समय ध्वज का जोड़ होता है ।

#!/bin/bash

PLUGINS=$(cordova plugin list | awk '{print $1}')

for PLUGIN in $PLUGINS; do
    cordova plugin rm $PLUGIN --force --save && cordova plugin add $PLUGIN --save
done

1
यह एक अच्छा हैक है, लेकिन कॉर्डोबा-प्लगइन-facebook4
मैक्स

2
जोड़ने - लागू करने में मदद मिल सकती है कॉर्डोवा प्लगइन rm $ PLUGIN --force --save
Dan Jay

8

यह एक आदेश में सभी प्लगइन्स को अपडेट करने के लिए मेरा विंडोज बैच संस्करण है

कैसे इस्तेमाल करे:

कमांड लाइन से, प्रोजेक्ट के समान फ़ोल्डर में, चलाएं

c:\> batchNameFile

या

c:\> batchNameFile autoupdate

जहां "बैचनेम" का नाम .BAT फ़ाइल है, जिसमें नीचे दी गई स्क्रिप्ट है।

केवल परीक्षण (पहले छूट) के लिए या हर अद्यतन को लाइक करने के लिए मजबूर करना (दूसरा उदाहरण)

@echo off

cls

set pluginListFile=update.plugin.list

if exist %pluginListFile% del %pluginListFile%

Echo "Reading installed Plugins"
Call cordova plugins > %pluginListFile%
echo.

for /F "tokens=1,2 delims= " %%a in ( %pluginListFile% ) do (
   Echo "Checking online version for %%a"

   for /F "delims=" %%I in ( 'npm info %%a version' ) do (
     Echo "Local : %%b"
     Echo "Online: %%I"
     if %%b LSS %%I Call :toUpdate %%a %~1
     :cont
     echo.
   )
)

if exist %pluginListFile% del %pluginListFile%

Exit /B

:toUpdate
Echo "Need Update !"
if '%~2' == 'autoupdate' Call :DoUpdate %~1
goto cont

:DoUpdate
Echo "Removing Plugin"
Call cordova plugin rm %~1
Echo "Adding Plugin"
Call cordova plugin add %~1
goto cont

यह बैच केवल विंडोज 10 में परीक्षण किया गया था


6

अपनी cordovaपरियोजना निर्देशिका पर जाएं फिर लिखें

npm outdated

npmआपका प्रदर्शन होगा outdated plugins, यदि कोई हो plugin outdatedतो इस कमांड को लिखें

npm update

कंसोल पूर्वावलोकन


4

npm update -f मेरे काम करने का रूप

npm अपडेट -f

यह सभी प्लगइन्स और cli को अपडेट करेगा

  • cordova-sqlite-storage@2.3.0
  • cordova-plugin-x-socialsharing@5.3.2
  • onesignal-cordova-plugin@2.3.3
  • @ आयनिक देशी / डिवाइस @ 4.6.0
  • @ आयनिक देशी / स्क्रीन अभिविन्यास @ 4.6.0
  • @ आयनिक देशी / onesignal @ 4.6.0
  • @ आयनिक देशी / स्थिति बार @ 4.6.0
  • @ आयनिक देशी / छप स्क्रीन @ 4.6.0
  • @ आयनिक देशी / कोर @ 4.6.0
  • @ आयनिक देशी / सामाजिक शेयरिंग @ 4.6.0
  • @ कोणीय / CLI @ 1.7.3
  • cordova-plugin-splashscreen@5.0.3-dev ने 322 पैकेज जोड़े, 256 पैकेज निकाले, 91 पैकेज अपडेट किए और 350.86s में 8 पैकेज ले गए।

3

मैं भी कुछ इस तरह से प्यार करता हूँ - फोनगैप / कॉर्डोवा सीएलआई के साथ प्लगइन प्रबंधन बहुत कष्टप्रद है। यहाँ यह ब्लॉग पोस्ट कुछ इस तरह से शुरू हो सकती है - लेकिन मुझे यकीन नहीं है कि A) इसे अभी तक कैसे ले सकता है या B) कितना अच्छा काम करेगा।

http://nocurve.com/cordova-update-all-plugins-in-project

टर्मिनल कमांड लाइन में पूरी स्क्रिप्ट को सही तरीके से चलाने के लिए मेरे शुरुआती प्रयास ने प्लगइन कमांड जोड़ने / हटाने के साथ टेक्स्ट का एक आउटपुट तैयार किया ... लेकिन वे वास्तव में निष्पादित नहीं हुए, बस टर्मिनल में गूंज गया। मैं लेखक से उम्मीद कर रहा हूं कि वे थोड़ा और समझाएंगे।


यहाँ ब्लॉग लेखक - मुझे नहीं पता कि मैंने सिर्फ कमांड क्यों गूँजाये हैं - उन्हें चलाया जाना चाहिए था - स्क्रिप्ट का एक परीक्षण संस्करण चिपकाया जाना चाहिए। वैसे भी, आशा है कि यह किसी की मदद करता है ...
एमनॉन

2

आप अपडेट नहीं कर सकते हैं, लेकिन मैंने एक बैच फ़ाइल लिखी है जो मेरे प्लगइन्स को हटा देती है और फिर से स्थापित करती है, तो इस मामले में मेरे सभी प्लगइन्स अपने आप अपडेट हो जाते हैं, आशा है कि यह आपकी समस्या को हल करेगा

@echo off
for %%a in (
"com.ionic.keyboard"
"com.phonegap.plugins.PushPlugin"
"cordova-instagram-plugin"
"cordova-plugin-camera"
"cordova-plugin-crosswalk-webview"
"cordova-plugin-file"
"cordova-plugin-file-transfer"

) do call cordova plugin rm %%a


for %%b in (
"com.ionic.keyboard"
"com.phonegap.plugins.PushPlugin"
"cordova-instagram-plugin"
"cordova-plugin-camera"
"cordova-plugin-crosswalk-webview"
"cordova-plugin-file"
"cordova-plugin-file-transfer"


) do call cordova plugin add %%b

इस स्क्रिप्ट को अपडेट करने के लिए किसी भी तरह से प्लगइन नाम को आउटपुट से स्क्रैप करने का कोई तरीका है cordova plugins?
मिश्रण

1

प्लगइन्स फ़ोल्डर को हटाने का सबसे आसान तरीका होगा। इस कमांड को चलाएं: cordova prepare लेकिन, इसे चलाने से पहले, आप प्रत्येक प्लगइन के संस्करण की जांच कर सकते हैं जो आपको लगता है कि कॉर्डोवा के प्लगइन रिपॉजिटरी वेबसाइट पर आपके निर्माण के लिए काम करेगा , और फिर आपको config.xml फ़ाइल को मैन्युअल रूप से संशोधित करना चाहिए। सार्वभौमिक मॉडलिंग भाषा फ़ाइल के संस्करण फ़ील्ड में "^" का उपयोग करें, "कॉन्फ़िगरेशन," यह इंगित करने के लिए कि आप निर्दिष्ट प्लगइन को भविष्य में नवीनतम संस्करण में अपडेट करना चाहते हैं (अगली बार जब आप कमांड चलाते हैं।)


हीहे, ऊपरी गाजर, इसे प्यार करते हैं। कि मेरे चेहरे पर एक मुस्कान है। वास्तव में यह एकवचन है और एक कैरेट (^) कहलाता है।
अल्फाबेट

0

यदि आप तृतीय पक्ष पैकेज स्थापित करते हैं:

npm i cordova-check-plugins

फिर आप एक साधारण कमांड चला सकते हैं

cordova-check-plugins --update=auto --force

हमेशा ध्यान रखें कि कुछ भी हमेशा बदलावों के संभावित जोखिम के साथ आता है।

जैसा कि अन्य जवाबों में कहा गया है, इन प्लगिन को प्रबंधित करने वाले कनेक्टिंग एनपीएम पैकेज को भी प्लगइन्स को अपडेट करते समय एक परिणामी अपडेट की आवश्यकता होती है, इसलिए अब आप इसके साथ जांच कर सकते हैं:

npm outdated

और फिर स्वीपिंग से उन्हें अपडेट करें

npm update

अब अस्थायी रूप से अपने ऐप को फिर से सेवा दें और उन सभी चीजों की जांच करें जो संभावित रूप से टूटने वाले परिवर्तनों से भड़क गए हैं। सॉफ्टवेयर विकास की खुशी! :)



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