Cordova eklentilerini projeden kaldırma


103

Bir şekilde uygulamamda cordova eklentilerinin çoğu yüklü ve bu nedenle kişilerimden mevcut konuma kadar neredeyse her şeye erişim gerektiriyor (bu uygulamanın buna ihtiyacı olmasa da).

Bu uygulama jenkins aracılığıyla oluşturuldu ve anladığım kadarıyla bir çözüm, her eklentiyi tek komutla kaldırmak, yani şöyle olacak:

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

Ancak bazen bazı hatalar gösterir ve jenkins ile herhangi bir hata derleme hatasıyla sonuçlanır, peki tüm eklentileri silen herhangi bir komut var mı? (herhangi bir uygulamanın çalışmasını gerektiren temel eklentiler, cordova aracılığıyla otomatik olarak ekleniyor, bu yüzden bazılarını arıyordum cordova plugin rm -allama bulamadım)


1
Y, cordovaplugin listesini çağıran ve ardından döndürülen her satır için cordova eklentisi rm yapan bir kabuk betiği oluşturmayı önerecektir
QuickFix

Böyle bir şeyi sadece makefile ile yapabilirim. Ayrıca unix komut satırı konusunda da iyi değilim.
mmmm

cordova projesinde tüm eklentileri kaldırmak için bir komut eklemelerini istemek için bir istek doldurmayı deneyebilirsiniz ...
QuickFix

evet, sadece benim için yeni bir komut
mmmm

Yanıtlar:


246

Öncelikle eklentilerinizi listelemelisiniz:

cordova plugin list

Bu sonuçla şunları yapabilirsiniz:

cordova plugin remove <PLUGIN_NAME>

Örneğin:

cordova plugin remove org.apache.cordova.media

Umarım yardımcı olur.


Bazı nedenlerden dolayı VS2013 projem hiç listelemiyor ve kaldırılamıyor. Eski moda config.xml düzenleme ve eklenti klasörü silme işlemlerine gitti ...
Anthony Horne

8
Adam her seferinde hepsini silmek için bir komut istedi. Bu, her seferinde yalnızca birini çıkarmak için basit, belgelenmiş bir cevaptır.
Imon

8
cordova plugin remove <PLUGIN_NAME> --saveconfig.xml
dosyasından

19

Bunu bash ile de yapabilirsiniz (Cordova proje dizininize geçtikten sonra):

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

Test ettin mi
Hamid Araghi

11

Kullanabilirsin: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm

ve cordova plugins listeklentilerin tümünün kaldırılıp kaldırılmadığını doğrulamak için kullanın .


İşe yaramadı. Aşağıdaki hatayı alın:Error: Plugin "{}" is not present in the project. See `cordova plugin list`
tfmontague

1
@tfmontague elle yapmayı deneyin cordova plugins lsve ardından eklentileri tek tek kaldırıp kaldıramayacağınızı görün cordova plugins rm plugin_name. Hatadan, eklentilerden biri projenizde fiziksel olarak bulunmuyor gibi görünüyor. Bu yöntemi kullanarak o eklentiyi bulabilirsiniz.
Hamid Tavakoli

10

cordova -check-eklentilerinin v2.0.0'ı, bir projedeki tüm eklentileri kaldırmanıza olanak tanır:

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

Her eklenti kaldırmak için Cordova CLI kullanmayı dener, ancak bu başarısız olursa ondan Eklentinin kaldırılmasını zorlar platforms/ve plugins/.

Config.xml'den de kaldırmak istiyorsanız, şunu kullanın:

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

Feragatname: cordova-check-plugins'in yazarıyım


$ cordova-check-plugins --remove-all --save Tüm eklentiler kaldırılıyor ... -FATAL ERROR: Kurulu eklentileri listelerken yerel / global cordova veya global phonegap CLI komutu bulunamadı - cordova npm modülünün yerel olarak kurulduğundan emin olun proje klasörünüzde veya global olarak. Hata: Komut başarısız oldu: phonegap -v 'phonegap' dahili veya harici bir komut, çalıştırılabilir program veya toplu iş dosyası olarak tanınmıyor.
Naga

@Naga, varsayılan önek npm yapılandırma değişkeni veya .npmrc / npmrc dosyalarınızda ayarladığınız her neyse, global npm dizininizde kurulu cordova veya phonegap'e ihtiyacınız var. Büyük olasılıkla, C:\Users\yourusername\AppData\Roaming\npmWindows veya /usr/localUNIX çekirdeği üzerinde çalışıyorsanız , sizinki içerdedir. npm config get prefix
Önekinizin

9

Terminalden (osx) genellikle kullanırım

cordova plugin -l | xargs cordova plugins rm

Boru, her şeyi çıkar!

Biraz genişletmek için: bu komut, sonuçları arasında döngü oluşturacak cordova plugin -lve onu besleyecektir cordova plugins rm.

xargs , daha önce neden bilmediğinizi merak ettiğiniz komutlardan biridir. Bunu gör.


1
Cordova 9.0.0'dan itibaren bu artık düzgün çalışmıyor, JVE999'lar çalışıyor.
Bala Clark

4

Bunu tek satırlık python ile yapıyorum:

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

Açıkçası herhangi bir hata koşulunu ele almıyor, ancak işi hallediyor.


Sadece bir kabuk komut dosyası kullanın. Kendi bağımlılıkları olan başka bir programlama dilini karışıma eklemek, Cordova'yı daha da büyük bir karmaşa haline getiriyor.
tfmontague

2

Cordova'dan hatırladığım kadarıyla, "res" klasöründe projenizde kullanılan eklentilerin listesini içeren bir xml dosyanız olmalıdır. Muhtemelen bu kullanılmayan eklentileri listeden kaldırmanız gerekiyor. Ayrıca ilgili dosyaları da kaldırmalısınız.


Bu köleye fiziksel erişimim yok. Bu şekilde yapılamaz.
mmmm

2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android

1
Devam edin ve cevabınıza biraz bağlam veya açıklama ekleyin.
Joey Phillips

1

Bu, Cordova'daki eklentileri kaldırmak için kullanılan komut satırıdır

cordova plugin remove <pluginid>

Örneğin, çalıştırdım cordova pluginve bir eklenti listesi aldım, ardından eklentinin kaldırılması için kimliği kullandım

cordova plugin remove com.monday.contact-chooser

Komut satırında yazarak yardım alabilirsiniz.

cordova help <command>


cordova eklentisi kaldır com.monday.contact-chooser hata veriyor - Hata: "cordova-plugin-name" eklentisi projede mevcut değil. Bakın cordova plugin list.
S.Yadav

Lütfen gönderinizi kaldırın, sorulan soru "tüm eklentileri silen herhangi bir komut var mı" idi.
tfmontague

1

Yüklü eklentiler arasında bağımlılıklar olduğundan (e, g, cordova-plugin-file ve cordova-plugin-dosya-aktarımı) yüklü eklentilerin listesinin işlenmesine dayalı komut dosyaları çalışmayabilir.

Örnekte, komut dosyası önce dosya eklentisini bulacak, sonra onu kaldırmaya çalışacak ve dosya aktarımı gerektirdiğinden bir hata alacağız. Bu nedenle, sahip olacağız


Bu, yüklü eklentiler arasındaki bağımlılıklar hakkında iyi bir noktadır. --forceEklentiyi ne olursa olsun kaldıracak bir kuvvet bayrağı olduğunu düşünüyorum ...
tfmontague

0

Komutu çalıştırırken:, cordova plugin remove <PLUGIN NAME>sürüm numarasını eklenti adına eklemediğinizden emin olun. Yalnızca düz eklenti adı, örneğin:

cordova plugin remove cordova.plugin_name 

ve yok:

cordova plugin remove cordova.plugin_name 0.01 

veya

cordova plugin remove "cordova.plugin_name 0.01"

Bir ayrıcalık sorunu olması durumunda, bir * nix sistemindeyseniz sudo ile çalıştırın, örneğin:

sudo cordova plugin remove cordova.plugin_name

Daha sonra config.xml dosyasından kaldırmak için --save ekleyebilirsiniz . Örneğin:

cordova plugin remove cordova.plugin_name --save

0
  • klasöre eriş
  • eklentileri listeleyin (cordova eklenti listesi)
  • ionic cordova eklentisi "pluginName" öğesini kaldır

İyi olmalı!


0

Yukarıdaki çözüm işe yaramadıysa ve herhangi bir işlenmemiş söz reddi aldıysanız, aşağıdaki adımları izlemeyi deneyin:

  1. Cordova projesini temizleyin

    cordova temiz

    1. Platformu kaldır

cordova platformu android / ios'u kaldır

  1. Ardından eklentiyi kaldırın

cordova eklentisi kaldır

  1. platformlar ekleyin ve projeyi çalıştırın Benim için çalıştı.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.