Menghapus plugin cordova dari proyek

103

Entah bagaimana di aplikasi saya, banyak plugin cordova diinstal dan karena itu membutuhkan akses ke hampir semua hal - dari kontak saya ke lokasi saat ini (meskipun aplikasi ini tidak memerlukan ini).

Aplikasi ini dibangun melalui jenkins dan sejauh yang saya mengerti salah satu solusinya adalah menghapus setiap plugin dengan satu perintah, jadi akan seperti:

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

Tetapi terkadang itu menunjukkan beberapa kesalahan dan dengan jenkins setiap kesalahan berakhir dengan kegagalan build, jadi apakah ada perintah yang menghapus semua plugin? (selama penginstalan, plugin dasar yang memerlukan aplikasi apa pun untuk berfungsi ditambahkan secara otomatis melalui cordova, jadi saya mencari beberapa cordova plugin rm -alltetapi tidak dapat menemukannya)

mmmm
sumber
1
Y akan merekomendasikan membangun skrip shell yang memanggil daftar cordovaplugin dan kemudian melakukan plugin cordova rm untuk setiap baris yang dikembalikan
QuickFix
Saya hanya bisa melakukan hal seperti itu melalui makefile. Dan juga saya tidak begitu baik dengan baris perintah unix.
mmmm
Anda dapat mencoba mengisi permintaan dalam proyek cordova untuk meminta mereka menambahkan perintah untuk menghapus semua plugin ...
QuickFix
ya, saya tidak punya banyak waktu untuk menunggu sampai mereka menambahkan perintah baru hanya untuk saya ..
mmmm

Jawaban:

246

Pertama, Anda harus mencantumkan plugin Anda:

cordova plugin list

Dengan hasil ini, Anda cukup melakukan:

cordova plugin remove <PLUGIN_NAME>

Sebagai contoh:

cordova plugin remove org.apache.cordova.media

Semoga membantu.

ruhanbidart.dll
sumber
Untuk beberapa alasan proyek VS2013 saya tidak mencantumkan apa pun dan menghapus tidak berfungsi. Pergi ke pengeditan config.xml mode lama dan folder plugin menghapus ...
Anthony Horne
8
Orang itu meminta perintah untuk menghapus semua sekaligus. Ini adalah jawaban terdokumentasi sederhana untuk dihapus hanya satu per satu.
Imon
8
lebih baik melakukannya cordova plugin remove <PLUGIN_NAME> --savesehingga secara otomatis dihapus dari config.xml
kamayd
19

Anda juga dapat melakukannya dengan bash (setelah beralih ke direktori proyek Cordova Anda):

for i in `cordova plugin ls | grep '^[^ ]*' -o`; do cordova plugin rm $i; done
JVE999
sumber
Apakah Anda mengujinya?
Hamid Araghi
11

Anda bisa menggunakan: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm

dan gunakan cordova plugins listuntuk memverifikasi apakah semua plugin telah dihapus.

Hamid Tavakoli
sumber
Tidak berhasil. Dapatkan kesalahan berikut:Error: Plugin "{}" is not present in the project. See `cordova plugin list`
tfmontague
1
@tfmontague coba lakukan secara manual cordova plugins lsdan lihat apakah Anda dapat menghapus plugin satu per satu menggunakan cordova plugins rm plugin_name. Dari kesalahan tersebut, sepertinya salah satu plugin tidak ada secara fisik dalam proyek Anda. Dengan menggunakan metode ini, Anda dapat menemukan plugin itu.
Hamid Tavakoli
10

v2.0.0 dari cordova-check-plugins memungkinkan Anda untuk menghapus semua plugin dalam sebuah proyek:

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

Ini akan mencoba menggunakan Cordova CLI untuk menghapus setiap plugin, tetapi jika gagal, itu akan memaksa penghapusan plugin dari platforms/dan plugins/.

Jika Anda juga ingin menghapus dari config.xml, gunakan:

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

Penafian: Saya adalah penulis dari cordova-check-plugins

DaveAlden
sumber
$ cordova-check-plugins --remove-all --save Menghapus semua plugin ... -FATAL ERROR: Gagal menemukan perintah CLI lokal / global cordova atau global phonegap saat membuat daftar plugin yang diinstal - pastikan modul cordova npm diinstal secara lokal di folder proyek Anda atau secara global. Kesalahan: Perintah gagal: phonegap -v 'phonegap' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dioperasikan atau file batch.
Naga
@Naga Anda memerlukan cordova atau phonegap diinstal di direktori npm global Anda yang ditentukan oleh awalan default variabel config npm atau apa pun yang Anda setel di file .npmrc / npmrc. Kemungkinan besar, milik Anda ada C:\Users\yourusername\AppData\Roaming\npmjika Anda menjalankan Windows atau /usr/localdi kernel UNIX. Anda dapat mengetahui apa awalan Anda dengan mengetik di terminal / perintahnpm config get prefix
NoodleOfDeath
9

Dari terminal (osx) yang biasa saya gunakan

cordova plugin -l | xargs cordova plugins rm

Pipa, pipa semuanya!

Untuk sedikit memperluas: perintah ini akan mengulang hasil dari cordova plugin -ldan memberi makan ke cordova plugins rm.

xargs adalah salah satu perintah yang Anda bertanya-tanya mengapa Anda tidak tahu sebelumnya. Lihat tut ini.

kuzyn
sumber
1
Pada cordova 9.0.0 ini tidak lagi berfungsi dengan benar, JVE999 berfungsi.
Bala Clark
4

Saya melakukannya dengan python one-liner ini:

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

Jelas itu tidak menangani segala jenis kondisi kesalahan, tetapi menyelesaikan pekerjaan.

Matthew Purdon
sumber
Cukup gunakan skrip shell. Menambahkan bahasa pemrograman lain dengan dependensinya sendiri ke dalam campuran membuat Cordova menjadi kekacauan yang lebih besar.
tfmontague
2

Sejauh yang saya ingat dari Cordova, Anda seharusnya memiliki file xml di folder "res" yang berisi daftar plugin yang digunakan dalam proyek Anda. Anda mungkin perlu menghapus plugin yang tidak digunakan itu dari daftar. Dan juga Anda harus menghapus file terkait.

osayilgan.dll
sumber
Saya tidak memiliki akses fisik ke budak ini. Tidak bisa dilakukan dengan cara ini.
mmmm
2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android
pengguna9972736
sumber
1
Silakan tambahkan beberapa konteks atau penjelasan untuk jawaban Anda.
Joey Phillips
1

Ini adalah baris perintah untuk menghapus plugin di Cordova

cordova plugin remove <pluginid>

Misalnya saya menjalankan cordova plugindan mendapatkan daftar plugin lalu saya menggunakan id untuk menghapus plugin

cordova plugin remove com.monday.contact-chooser

Anda bisa mendapatkan bantuan di baris perintah dengan mengetik

cordova help <command>

Jack Shultz
sumber
plugin cordova menghapus com.monday.contact-chooser memberikan kesalahan sebagai - Kesalahan: Plugin "cordova-plugin-name" tidak ada dalam proyek. Lihat cordova plugin list.
S. Yadav
Harap hapus postingan Anda, pertanyaan yang diajukan adalah "apakah ada perintah yang menghapus semua plugin".
tfmontague
1

Skrip berdasarkan pemrosesan daftar plugin yang diinstal mungkin tidak berfungsi karena ada dependensi antara plugin yang diinstal (e, g, cordova-plugin-file dan cordova-plugin-file-transfer).

Dalam contoh, skrip akan menemukan plugin file terlebih dahulu, kemudian akan mencoba menghapusnya dan kami akan mendapatkan kesalahan karena transfer file memerlukannya. Oleh karena itu, kami akan melakukannya

Nacho Marín
sumber
Ini adalah poin yang bagus tentang ketergantungan antara plugin yang diinstal. Saya rasa ada flag force --force, yang akan menghapus plugin apapun ...
tfmontague
0

Saat menjalankan perintah:, cordova plugin remove <PLUGIN NAME>pastikan Anda tidak menambahkan nomor versi ke nama plugin. Hanya nama plugin biasa, misalnya:

cordova plugin remove cordova.plugin_name 

dan tidak:

cordova plugin remove cordova.plugin_name 0.01 

atau

cordova plugin remove "cordova.plugin_name 0.01"

Jika ada masalah hak istimewa, jalankan dengan sudo jika Anda menggunakan sistem * nix, misalnya:

sudo cordova plugin remove cordova.plugin_name

Kemudian Anda dapat menambahkan --simpan untuk menghapusnya dari file config.xml. Sebagai contoh:

cordova plugin remove cordova.plugin_name --save
franc
sumber
0
  • akses foldernya
  • daftar plugin (daftar plugin cordova)
  • plugin ionic cordova hapus "pluginName"

Seharusnya baik-baik saja!

Mekkush
sumber
0

Jika solusi di atas tidak berhasil dan Anda mendapat penolakan janji yang tidak tertangani, coba ikuti langkah-langkah berikut:

  1. Bersihkan proyek Cordova

    cordova bersih

    1. Hapus platform

Platform cordova menghapus android / ios

  1. Kemudian hapus plugin

plugin cordova hapus

  1. menambahkan platform dan menjalankan proyek Itu berhasil untuk saya.
rahul.sapkal23
sumber