프로젝트에서 Cordova 플러그인 제거


103

어떻게 든 내 앱에 많은 cordova 플러그인이 설치되어 있기 때문에 연락처에서 현재 위치에 이르기까지 거의 모든 것에 액세스해야합니다 (이 앱이 필요하지 않더라도).

이 앱은 젠킨스를 통해 빌드되었으며 한 가지 해결책은 단일 명령으로 모든 플러그인을 제거하는 것이므로 다음과 같습니다.

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

그러나 때로는 일부 오류가 표시되고 jenkins에서 오류가 빌드 실패로 끝납니다. 그래서 모든 플러그인을 삭제하는 명령이 있습니까? (설치하는 동안 모든 앱이 작동해야하는 기본 플러그인은 cordova를 통해 자동으로 추가되므로 일부를 찾고 cordova plugin rm -all있었지만 찾을 수 없었습니다)


1
Y 통화가 다음 목록을 cordovaplugin 것을 쉘 스크립트를 구축 recomment 것이다 않습니다 코르도바 플러그인 RM은 각 행이 반환을위한
QuickFix

나는 makefile을 통해서만 그런 일을 할 수 있습니다. 또한 나는 유닉스 커맨드 라인에 그다지 좋지 않습니다.
mmmm

모든 플러그인을 제거하는 명령을 추가하도록 요청하기 위해 cordova 프로젝트에서 요청을 채우려 고 시도 할 수 있습니다.
QuickFix

네, 그들이 나를 위해 새로운 명령을 추가 할 때까지 기다릴 시간이 많지 않습니다.
mmmm

답변:


246

먼저 플러그인을 나열해야합니다.

cordova plugin list

이 결과로 다음을 수행 할 수 있습니다.

cordova plugin remove <PLUGIN_NAME>

예를 들면 :

cordova plugin remove org.apache.cordova.media

도움이되기를 바랍니다.


어떤 이유로 내 VS2013 프로젝트에 아무것도 나열되지 않고 제거가 작동하지 않습니다. 오래된 패션 사라 config.xml의 편집 및 플러그인 폴더 삭제 ...
안토니 혼

8
그 남자는 한 번에 모두 삭제하라는 명령을 요청했습니다. 이것은 한 번에 하나씩 만 제거하는 간단한 문서화 된 답변입니다.
Imon

8
cordova plugin remove <PLUGIN_NAME> --saveconfig.xml에서 자동으로 제거되도록하는 것이 좋습니다
kamayd

19

bash로도 수행 할 수 있습니다 (Cordova 프로젝트 디렉토리로 전환 한 후).

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

테스트 했습니까?
Hamid Araghi

11

다음을 사용할 수 있습니다. cordova plugins list | awk '{print $1}' | xargs cordova plugins rm

cordova plugins list플러그인이 모두 제거되었는지 확인 하는 데 사용합니다.


작동하지 않았습니다. 다음 오류가 발생합니다.Error: Plugin "{}" is not present in the project. See `cordova plugin list`
tfmontague

1
@tfmontague 수동으로 시도한 cordova plugins ls다음을 사용하여 플러그인을 하나씩 제거 할 수 있는지 확인합니다 cordova plugins rm plugin_name. 오류로 인해 플러그인 중 하나가 프로젝트에 실제로 존재하지 않는 것 같습니다. 이 방법을 사용하면 해당 플러그인을 찾을 수 있습니다.
Hamid Tavakoli

10

의 V2.0.0 코르도바 - 체크인 플러그인 프로젝트의 모든 플러그인을 제거 할 수 있습니다 :

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

Cordova CLI를 사용하여 각 플러그인을 제거하려고 시도하지만 실패하면 platforms/및 에서 플러그인을 강제로 제거합니다 plugins/.

config.xml에서도 제거하려면 다음을 사용하십시오.

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

면책 조항 : 나는 cordova-check-plugins의 저자입니다.


$ cordova-check-plugins --remove-all --save 모든 플러그인 제거 중 ...-치명적 오류 : 설치된 플러그인을 나열 할 때 로컬 / 글로벌 cordova 또는 글로벌 phonegap CLI 명령을 찾지 못했습니다. 로컬에 Cordova npm 모듈이 설치되어 있는지 확인하십시오. 프로젝트 폴더 또는 전역. 오류 : 명령 실패 : phonegap -v 'phonegap'은 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.
Naga

@Naga는 기본 접두사 npm config 변수 또는 .npmrc / npmrc 파일에서 설정 한 값으로 지정된 전역 npm 디렉토리에 설치된 cordova 또는 phonegap이 필요합니다. 대부분의 C:\Users\yourusername\AppData\Roaming\npm경우 Windows 또는 /usr/localUNIX 커널에서 실행중인 경우에 있습니다 . 터미널 / 명령어를 입력하여 접두사를 확인할 수 있습니다npm config get prefix
NoodleOfDeath

9

터미널 (osx)에서 나는 보통

cordova plugin -l | xargs cordova plugins rm

파이프, 모든 파이프!

조금 확장하려면 :이 명령은 결과를 반복 cordova plugin -l하고cordova plugins rm .

xargs 는 이전에 왜 몰랐는지 궁금해하는 명령 중 하나입니다. 이 혀를 참조하십시오.


1
cordova 9.0.0부터 이것은 더 이상 올바르게 작동하지 않으며 JVE999는 작동합니다.
Bala Clark

4

이 파이썬 한 줄로 수행합니다.

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

분명히 어떤 종류의 오류 조건도 처리하지 않지만 작업이 완료됩니다.


쉘 스크립트를 사용하십시오. 고유 한 종속성을 가진 또 다른 프로그래밍 언어를 믹스에 추가하면 Cordova가 훨씬 더 엉망이됩니다.
tfmontague

2

내가 Cordova에서 기억하는 한, 프로젝트에 사용 된 플러그인 목록이 포함 된 "res"폴더에 xml 파일이 있어야합니다. 목록에서 사용하지 않는 플러그인을 제거해야 할 수도 있습니다. 또한 관련 파일을 제거해야합니다.


나는이 노예에 물리적으로 접근 할 수 없습니다. 이런 식으로 할 수 없습니다.
mmmm

2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android

1
계속해서 답변에 맥락이나 설명을 추가하십시오.
Joey Phillips

1

Cordova에서 플러그인을 제거하기위한 명령 줄입니다.

cordova plugin remove <pluginid>

예를 들어 cordova plugin플러그인 목록을 실행 하고 플러그인의 ID를 사용하여 제거했습니다.

cordova plugin remove com.monday.contact-chooser

명령 줄에서 다음을 입력하여 도움말을 얻을 수 있습니다.

cordova help <command>


cordova plugin remove com.monday.contact-chooser가 다음과 같은 오류를 제공함-오류 : 플러그인 "cordova-plugin-name"이 프로젝트에 없습니다. 을 참조하십시오 cordova plugin list.
S.Yadav

게시물을 삭제하십시오. 질문은 "모든 플러그인을 삭제하는 명령이 있습니까?"입니다.
tfmontague

1

설치된 플러그인 목록 처리에 기반한 스크립트는 설치된 플러그인 (예 : cordova-plugin-file 및 cordova-plugin-file-transfer)간에 종속성이 있기 때문에 작동하지 않을 수 있습니다.

예제에서 스크립트는 먼저 파일 플러그인을 찾은 다음 제거를 시도하고 파일 전송에 필요하므로 오류가 발생합니다. 따라서 우리는


이것은 설치된 플러그인 간의 종속성에 대한 좋은 점입니다. 나는 --force플러그인을 제거 할 강제 플래그가 있다고 생각합니다 ...
tfmontague

0

명령을 실행할 때 cordova plugin remove <PLUGIN NAME>플러그인 이름에 버전 번호를 추가하지 않도록하십시오. 일반 플러그인 이름, 예 :

cordova plugin remove cordova.plugin_name 

그리고 아닙니다 :

cordova plugin remove cordova.plugin_name 0.01 

또는

cordova plugin remove "cordova.plugin_name 0.01"

권한 문제가있는 경우 * nix 시스템에있는 경우 sudo로 실행합니다. 예를 들면 다음과 같습니다.

sudo cordova plugin remove cordova.plugin_name

그런 다음 --save 를 추가 하여 config.xml 파일에서 제거 할 수 있습니다 . 예를 들면 :

cordova plugin remove cordova.plugin_name --save

0
  • 폴더에 액세스
  • 플러그인 나열 (cordova 플러그인 목록)
  • 이온 코르도바 플러그인 제거 "pluginName"

괜찮을거야!


0

위의 솔루션이 작동하지 않고 처리되지 않은 약속 거부가 발생하면 다음 단계를 따르십시오.

  1. Cordova 프로젝트 청소

    코르도바 청소

    1. 플랫폼 제거

cordova 플랫폼 제거 android / ios

  1. 그런 다음 플러그인 제거

코르도바 플러그인 제거

  1. 플랫폼을 추가하고 프로젝트를 실행하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.