从项目中删除Cordova插件


103

不知何故,我的应用程序中安装了许多cordova插件,因此,它需要访问几乎所有内容-从我的联系人到当前位置(即使此应用程序不需要此功能)。

这个应用程序是通过jenkins构建的,据我了解,一种解决方案是使用单个命令删除每个插件,因此它将类似于:

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

但是有时它会显示一些错误,而对于詹金斯来说,任何错误都会导致构建失败,因此是否有任何命令可以删除所有插件?(在安装过程中,需要任何应用程序才能正常工作的插件会通过cordova自动添加,因此我一直在寻找一些cordova plugin rm -all但找不到)


1
Y将建议构建一个shell脚本,该脚本将调用cordovaplugin列表,然后对返回的每一行执行cordova插件rm
QuickFix 2014年

我只能通过makefile做类似的事情。而且我对unix命令行也不太满意。
mmmm 2014年

您可以尝试在cordova项目中填写请求,要求他们添加命令以删除所有插件...
QuickFix 2014年

是啊,我没有那么多时间去等待,直到他们添加一个新的命令只是我..
MMMM

Answers:


245

首先,您应该列出您的插件:

cordova plugin list

使用此结果,您可以简单地执行以下操作:

cordova plugin remove <PLUGIN_NAME>

例如:

cordova plugin remove org.apache.cordova.media

希望能帮助到你。


由于某些原因,我的VS2013项目未列出任何内容,因此删除不起作用。不再使用旧的config.xml编辑和插件文件夹删除...
安东尼·霍恩

8
这个家伙要求一次删除所有命令。这是一个记录在案的简单答案,一次只能删除一个。
伊蒙

8
最好这样做,cordova plugin remove <PLUGIN_NAME> --save以便将其自动从config.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 '17

1
@tfmontague尝试手动执行cordova plugins ls,然后查看是否可以使用逐个删除插件cordova plugins rm plugin_name。从该错误来看,您的项目中似乎没有一个插件实际存在。使用此方法,您可以找到该插件。
哈米德·塔瓦科利

10

vova.check -plugins 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-删除所有--save删除所有插件...-致命错误:列出已安装的插件时找不到本地/全局cordova或全局phonegap CLI命令-确保本地安装了cordova npm模块在您的项目文件夹或全局中。错误:命令失败:phonegap -v'phonegap'无法识别为内部或外部命令,可操作程序或批处理文件。
娜迦

@Naga您需要在全局npm目录中安装cordova或phonegap,该目录由默认前缀npm config变量或在.npmrc / npmrc文件中设置的内容指定。C:\Users\yourusername\AppData\Roaming\npm如果您是在Windows或/usr/localUNIX内核上运行,则很可能属于您。您可以通过输入终端/命令来找出前缀是什么npm config get prefix
NoodleOfDeath '18

9

我通常使用终端(osx)

cordova plugin -l | xargs cordova plugins rm

管,管一切!

扩大一点:此命令将循环遍历的结果cordova plugin -l并将其提供给cordova plugins rm

xargs是您想知道为什么以前不知道的那些命令之一。看到这个tut。


1
从cordova 9.0.0版本开始,此功能将无法正常运行,JVE999可以正常运行。
巴拉·克拉克

4

我使用此python单行代码执行此操作:

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

显然,它不处理任何类型的错误条件,但可以完成工作。


只需使用一个shell脚本。将另一种具有自己的依赖关系的编程语言加入到混合中,会使Cordova变得更加混乱。
tfmontague '17

2

据我从Cordova记得,您应该在“ res”文件夹中有一个xml文件,其中包含项目中使用的插件列表。您可能需要从列表中删除那些未使用的插件。并且您还应该删除相关文件。


我没有物理访问此奴隶。无法以这种方式完成。
mmmm 2014年

2
cordova platform rm android

cordova plugin rm cordova-plugin-firebase

cordova platform add android

1
继续,为您的答案添加一些上下文或解释。
乔伊·菲利普斯

1

这是在Cordova中删除插件的命令行

cordova plugin remove <pluginid>

例如,我运行cordova plugin并获得了插件列表,然后使用插件的ID进行卸载

cordova plugin remove com.monday.contact-chooser

您可以通过在命令行中输入以下内容获得帮助

cordova help <command>


cordova插件删除com.monday.contact-chooser,并给出以下错误信息:-错误:项目中不存在插件“ cordova-plugin-name”。请参阅cordova plugin list
S.Yadav

请删除您的帖子,询问的问题是“是否有任何命令删除所有插件”。
tfmontague '17

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. 清理科尔多瓦项目

    科尔多瓦干净

    1. 移除平台

科尔多瓦平台删除android / ios

  1. 然后删除插件

cordova插件删除

  1. 添加平台并运行项目对我有用。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.