Xóa plugin cordova khỏi dự án


103

Bằng cách nào đó trong ứng dụng của tôi, nhiều plugin cordova được cài đặt và do đó nó yêu cầu quyền truy cập vào hầu hết mọi thứ - từ danh bạ của tôi đến vị trí hiện tại (mặc dù ứng dụng này không cần điều này).

Ứng dụng này được xây dựng thông qua jenkins và theo như tôi hiểu thì có một giải pháp là xóa mọi plugin bằng một lệnh duy nhất, vì vậy nó sẽ giống như sau:

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

Nhưng đôi khi nó hiển thị một số lỗi và với jenkins, bất kỳ lỗi nào cũng dẫn đến lỗi xây dựng, vậy có lệnh nào xóa tất cả các plugin không? (trong khi cài đặt các plugin cơ bản yêu cầu bất kỳ ứng dụng nào hoạt động được tự động thêm vào qua cordova, vì vậy tôi đã tìm kiếm một số cordova plugin rm -allnhưng không tìm thấy)


1
Y sẽ recomment xây dựng một kịch bản shell mà các cuộc gọi cordovaplugin danh sách và sau đó làm cordova Plugin rm cho mỗi dòng trở lại
QuickFix

Tôi chỉ có thể làm điều gì đó như vậy thông qua makefile. Và tôi cũng không giỏi với dòng lệnh unix.
mmmm

bạn có thể thử điền vào một yêu cầu trong dự án cordova để yêu cầu họ thêm lệnh xóa tất cả các plugin ...
QuickFix

vâng, tôi không có nhiều thời gian để đợi cho đến khi họ thêm một lệnh mới chỉ dành cho tôi ..
mmmm

Câu trả lời:


245

Trước tiên, bạn nên liệt kê các plugin của mình:

cordova plugin list

Với kết quả này, bạn chỉ cần làm:

cordova plugin remove <PLUGIN_NAME>

Ví dụ:

cordova plugin remove org.apache.cordova.media

Hy vọng nó giúp.


Vì một số lý do mà dự án VS2013 của tôi không có bất kỳ danh sách nào và việc loại bỏ không hoạt động. Cuốn đến thời trang cũ config.xml chỉnh sửa và plugin thư mục xóa ...
Anthony Horne

8
Anh chàng yêu cầu lệnh xóa tất cả cùng một lúc. Đây là một câu trả lời đơn giản được ghi lại bằng văn bản để chỉ loại bỏ một câu trả lời tại một thời điểm.
Imon

8
tốt hơn để làm cordova plugin remove <PLUGIN_NAME> --savesao cho nó tự động xóa khỏi config.xml
kamayd

19

Bạn cũng có thể làm điều đó với bash (sau khi chuyển sang thư mục dự án Cordova của bạn):

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

Bạn đã kiểm tra nó?
Hamid Araghi

11

Bạn đã có thể sử dụng: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm

và sử dụng cordova plugins listđể xác minh xem các plugin đã được gỡ bỏ hết chưa.


Không hoạt động. Error: Plugin "{}" is not present in the project. See `cordova plugin list`
Gặp

1
@tfmontague hãy thử làm theo cách thủ công cordova plugins lsvà sau đó xem bạn có thể xóa từng plugin một bằng cách sử dụng không cordova plugins rm plugin_name. Từ lỗi, có vẻ như một trong các plugin không có trong dự án của bạn. Sử dụng phương pháp này, bạn có thể tìm thấy plugin đó.
Hamid Tavakoli

10

v2.0.0 của các plugin cordova-check- cho phép bạn xóa tất cả các plugin trong một dự án:

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

Nó sẽ cố gắng sử dụng Cordova CLI để xóa từng plugin, nhưng nếu điều này không thành công, nó sẽ buộc xóa plugin khỏi platforms/plugins/.

Nếu bạn cũng muốn xóa khỏi config.xml, hãy sử dụng:

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

Tuyên bố từ chối trách nhiệm: Tôi là tác giả của cordova-check-plugins


$ cordova-check-plugins --remove-all --save Đang xóa tất cả các plugin ...-LỖI TỔNG HỢP: Không tìm thấy lệnh CLI cục bộ / toàn cục hoặc bản đồ điện thoại toàn cầu khi liệt kê các plugin đã cài đặt - đảm bảo bạn đã cài đặt mô-đun npm cordova cục bộ trong thư mục dự án của bạn hoặc trên toàn cầu. Lỗi: Lệnh không thành công: phonegap -v 'phonegap' không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài, chương trình có thể hoạt động hoặc tệp hàng loạt.
Naga

@Naga, bạn cần cài đặt cordova hoặc phonegap trong thư mục npm chung của mình, được chỉ định bởi biến cấu hình npm tiền tố mặc định hoặc bất cứ thứ gì bạn đặt thành trong tệp .npmrc / npmrc của mình. Rất có thể, của bạn nằm trong C:\Users\yourusername\AppData\Roaming\npmnếu bạn đang chạy trên Windows hoặc /usr/localtrên hạt nhân UNIX. Bạn có thể tìm hiểu tiền tố của mình bằng cách nhập vào terminal / commandnpm config get prefix
NoodleOfDeath

9

Từ thiết bị đầu cuối (osx) tôi thường sử dụng

cordova plugin -l | xargs cordova plugins rm

Đường ống, đường ống mọi thứ!

Để mở rộng một chút: lệnh này sẽ lặp qua các kết quả của cordova plugin -lvà đưa nó vào cordova plugins rm.

xargs là một trong những lệnh mà bạn thắc mắc tại sao trước đây bạn không biết. Xem tut này.


1
Kể từ cordova 9.0.0, điều này không còn hoạt động chính xác, JVE999 vẫn hoạt động.
Bala Clark

4

Tôi làm điều đó với một lớp lót python này:

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

Rõ ràng là nó không xử lý bất kỳ loại điều kiện lỗi nào, nhưng nó sẽ hoàn thành công việc.


Chỉ cần sử dụng một tập lệnh shell. Việc ném thêm một ngôn ngữ lập trình khác với các phụ thuộc của chính nó vào hỗn hợp khiến Cordova trở thành một mớ hỗn độn thậm chí còn lớn hơn.
tfmontague

2

Theo như tôi nhớ từ Cordova, bạn nên có một tệp xml trong thư mục "res" chứa danh sách các plugin được sử dụng trong dự án của bạn. Bạn có thể cần xóa những plugin không sử dụng đó khỏi danh sách. Và bạn cũng nên loại bỏ các tệp liên quan.


Tôi không có quyền truy cập vật lý vào nô lệ này. Không thể được thực hiện theo cách này.
mmmm

2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android

1
Hãy tiếp tục và thêm một số ngữ cảnh hoặc giải thích cho câu trả lời của bạn.
Joey Phillips

1

Đây là dòng lệnh để xóa các plugin trong Cordova

cordova plugin remove <pluginid>

Ví dụ: tôi đã chạy cordova pluginvà nhận được danh sách các plugin, sau đó tôi sử dụng id cho plugin để gỡ cài đặt

cordova plugin remove com.monday.contact-chooser

Bạn có thể nhận trợ giúp về dòng lệnh bằng cách nhập

cordova help <command>


plugin cordova loại bỏ lỗi đưa ra com.monday.contact-chooser - Lỗi: Plugin "cordova-plugin-name" không có trong dự án. Thấy chưa cordova plugin list.
S.Yadav

Vui lòng xóa bài đăng của bạn, câu hỏi được đặt ra là "có lệnh nào xóa tất cả các plugin không".
tfmontague

1

Các tập lệnh dựa trên việc xử lý danh sách các plugin đã cài đặt có thể không hoạt động vì có sự phụ thuộc giữa các plugin đã cài đặt (e, g, cordova-plugin-file và cordova-plugin-file-transfer).

Trong ví dụ này, tập lệnh sẽ tìm thấy plugin tệp trước, sau đó nó sẽ cố gắng xóa nó và chúng tôi sẽ gặp lỗi khi chuyển tệp yêu cầu. Do đó, chúng ta sẽ có


Đây là một điểm tốt về sự phụ thuộc giữa các plugin đã cài đặt. Tôi nghĩ rằng có một cờ buộc --force, sẽ xóa plugin bất kể ...
tfmontague

0

Khi chạy lệnh:, cordova plugin remove <PLUGIN NAME>hãy đảm bảo rằng bạn không thêm số phiên bản vào tên plugin. Chỉ là tên plugin đơn giản, ví dụ:

cordova plugin remove cordova.plugin_name 

và không:

cordova plugin remove cordova.plugin_name 0.01 

hoặc là

cordova plugin remove "cordova.plugin_name 0.01"

Trong trường hợp có vấn đề về đặc quyền, hãy chạy với sudo nếu bạn đang sử dụng hệ thống * nix, ví dụ:

sudo cordova plugin remove cordova.plugin_name

Sau đó, bạn có thể thêm --save để xóa nó khỏi tệp config.xml. Ví dụ:

cordova plugin remove cordova.plugin_name --save

0
  • truy cập vào thư mục
  • liệt kê các plugin (danh sách plugin cordova)
  • ionic cordova plugin loại bỏ "pluginName"

Sẽ ổn thôi!


0

Nếu giải pháp trên không hoạt động và bạn nhận được bất kỳ lời hứa nào bị từ chối, hãy thử làm theo các bước:

  1. Làm sạch dự án Cordova

    cordova sạch

    1. Xóa nền tảng

nền tảng cordova loại bỏ android / ios

  1. Sau đó, gỡ bỏ plugin

gỡ bỏ plugin cordova

  1. thêm nền tảng và chạy dự án Nó đã làm việc cho tôi.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.