W jakiś sposób w mojej aplikacji jest zainstalowanych wiele wtyczek Cordova i dlatego wymaga dostępu do prawie wszystkiego - od moich kontaktów po bieżącą lokalizację (nawet jeśli ta aplikacja tego nie potrzebuje).
Ta aplikacja jest zbudowana przez jenkins i, o ile rozumiem, jednym rozwiązaniem jest usunięcie każdej wtyczki za pomocą jednego polecenia, więc będzie wyglądać następująco:
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
Ale czasami pokazuje pewne błędy, aw przypadku Jenkinsa każdy błąd kończy się niepowodzeniem kompilacji, więc czy jest jakieś polecenie, które usuwa wszystkie wtyczki? (podczas instalacji podstawowe wtyczki, które wymagają do działania dowolnej aplikacji, są dodawane automatycznie przez cordova, więc szukałem ich, cordova plugin rm -all
ale nie mogłem ich znaleźć)
Odpowiedzi:
Najpierw powinieneś wymienić swoje wtyczki:
Dzięki temu wynikowi możesz po prostu:
Na przykład:
Mam nadzieję, że to pomoże.
źródło
cordova plugin remove <PLUGIN_NAME> --save
, aby został automatycznie usunięty z config.xmlMożesz to również zrobić za pomocą basha (po przejściu do katalogu projektu Cordova):
źródło
Możesz użyć:
cordova plugins list | awk '{print $1}' | xargs cordova plugins rm
i użyj,
cordova plugins list
aby sprawdzić, czy wszystkie wtyczki zostały usunięte.źródło
Error: Plugin "{}" is not present in the project. See `cordova plugin list`
cordova plugins ls
a następnie sprawdź, czy możesz usunąć wtyczki pojedynczo, używająccordova plugins rm plugin_name
. Po błędzie wygląda na to, że jedna z wtyczek nie jest fizycznie obecna w twoim projekcie. Korzystając z tej metody, możesz znaleźć tę wtyczkę.Wersja 2.0.0 cordova-check-plugins umożliwia usunięcie wszystkich wtyczek w projekcie:
Spróbuje użyć Cordova CLI do usunięcia każdej wtyczki, ale jeśli to się nie powiedzie, wymusi usunięcie wtyczki z
platforms/
iplugins/
.Jeśli chcesz również usunąć z config.xml, użyj:
Uwaga: jestem autorem wtyczek cordova-check
źródło
C:\Users\yourusername\AppData\Roaming\npm
jeśli pracujesz w systemie Windows lub/usr/local
jądrze UNIX. Możesz dowiedzieć się, jaki jest twój prefiks, wpisując terminal / commandnpm config get prefix
Z terminala (osx) zwykle używam
Rura, fajka wszystko!
Aby nieco rozwinąć: to polecenie przejdzie w pętlę przez wyniki
cordova plugin -l
i przekaże je docordova plugins rm
.xargs to jedno z tych poleceń, o których zastanawiasz się, dlaczego wcześniej nie wiedziałeś. Zobacz ten tut.
źródło
Robię to za pomocą tego jednowierszowego pythona:
Oczywiście nie obsługuje żadnych warunków błędów, ale wykonuje swoje zadanie.
źródło
O ile pamiętam z Cordova, powinieneś mieć plik xml w folderze "res" zawierającym listę wtyczek użytych w twoim projekcie. Prawdopodobnie musisz usunąć te nieużywane wtyczki z listy. Powinieneś także usunąć powiązane pliki.
źródło
źródło
To jest wiersz poleceń do usuwania wtyczek w Cordovie
cordova plugin remove <pluginid>
Na przykład uruchomiłem
cordova plugin
i otrzymałem listę wtyczek, a następnie użyłem identyfikatora wtyczki do odinstalowaniacordova plugin remove com.monday.contact-chooser
Możesz uzyskać pomoc w wierszu poleceń, wpisując
cordova help <command>
źródło
cordova plugin list
.Skrypty oparte na przetwarzaniu listy zainstalowanych wtyczek mogą nie działać, ponieważ istnieją zależności między zainstalowanymi wtyczkami (np. Cordova-plugin-file i cordova-plugin-file-transfer).
W tym przykładzie skrypt najpierw znajdzie wtyczkę pliku, a następnie spróbuje ją usunąć, a my otrzymamy błąd, ponieważ transfer plików tego wymaga. Dlatego będziemy mieć
źródło
--force
, która usunęłaby wtyczkęPodczas uruchamiania polecenia:
cordova plugin remove <PLUGIN NAME>
upewnij się, że nie dodajesz numeru wersji do nazwy wtyczki. Po prostu nazwa wtyczki, na przykład:i nie:
lub
W przypadku problemu z uprawnieniami, uruchom sudo, jeśli jesteś w systemie * nix, na przykład:
Następnie możesz dodać --save, aby usunąć go z pliku config.xml. Na przykład:
źródło
Powinno być dobrze!
źródło
Jeśli powyższe rozwiązanie nie zadziałało i otrzymałeś nieobsłużone odrzucenie obietnicy, spróbuj wykonać następujące czynności:
Wyczyść projekt Cordova
cordova clean
Platforma cordova usuwa androida / ios
Usuń wtyczkę cordova
źródło