从项目中删除cordova插件
不知何故,在我的应用程序中,许多cordova插件已安装,因此它需要访问几乎所有的东西 – 从我的联系人到当前位置(即使这个应用程序不需要这个)。
这个应用程序是通过jenkins构build的,据我所知,一个解决scheme是用单个命令删除每个插件,所以它会像:
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任何错误都会以构build失败而告终,那么是否有删除所有插件的命令? (在安装基础知识插件,需要任何应用程序的工作,通过cordova自动添加,所以我正在寻找一些cordova plugin rm -all
但无法find它)
首先,你应该列出你的插件:
cordova plugin list
有了这个结果,你可以简单地做:
cordova plugin remove <PLUGIN_NAME>
例如:
cordova plugin remove org.apache.cordova.media
希望能帮助到你。
您也可以使用bash(切换到您的Cordova项目目录之后):
for i in `cordova plugin ls | grep '^[^ ]*' -o`; do cordova plugin rm $i; done
你可以使用: cordova plugins list | awk '{print $1}' | xargs cordova plugins rm
cordova plugins list | awk '{print $1}' | xargs cordova plugins rm
并使用cordova plugins list
来validation插件是否全部被删除。
从我通常使用的terminal(osx)
cordova plugin -l | xargs cordova plugins rm
pipe,pipe一切!
扩展一下:这个命令将遍历cordova plugin -l
的结果并将其提供给cordova plugins rm
。
xargs是你想知道为什么你以前不知道的命令之一。 看这个tut。
cordova-check-plugins的v2.0.0使您能够删除项目中的所有插件:
$ npm install -g cordova-check-plugins $ cordova-check-plugins --remove-all
它将尝试使用Cordova CLI删除每个插件,但是如果失败,它将强制从platforms/
和plugins/
删除plugins/
。
如果您还想从config.xml中删除,请使用:
$ cordova-check-plugins --remove-all --save
免责声明:我是cordova-check-plugins的作者
我用这个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]"
显然它不处理任何错误的情况下,但它完成了工作。
据我记得从cordova,你应该有一个“res”文件夹中的xml文件,其中包含项目中使用的插件列表。 您可能需要从列表中删除这些未使用的插件。 而且你也应该删除相关的文件。
这是删除cordova插件的命令行
cordova plugin remove <pluginid>
例如,我跑了cordova plugin
并得到了一个插件列表,然后我使用该插件的ID卸载
cordova plugin remove com.monday.contact-chooser
您可以通过键入命令行来获得帮助
cordova help <command>
基于处理已安装插件列表的脚本可能无法正常工作,因为已安装的插件(例如,cordova-plugin-file和cordova-plugin-file-transfer)之间存在依赖关系。
在这个例子中,脚本会首先find文件插件,然后它会尝试删除它,当文件传输需要时,我们会得到一个错误。 所以我们会有的