从项目中删除科尔多瓦插件
Posted
技术标签:
【中文标题】从项目中删除科尔多瓦插件【英文标题】:Removing cordova plugins from the project 【发布时间】:2014-03-22 20:51:14 【问题描述】:在我的应用程序中不知何故安装了许多 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
但有时它会显示一些错误,并且对于 jenkins,任何错误最终都会导致构建失败,那么是否有任何命令可以删除所有插件? (在安装过程中,需要任何应用程序才能工作的基础插件是通过cordova自动添加的,所以我一直在寻找一些cordova plugin rm -all
但找不到它)
【问题讨论】:
Y 建议构建一个调用 cordovaplugin list 的 shell 脚本,然后为返回的每一行执行 cordova plugin rm 我只能通过makefile来做类似的事情。而且我对unix命令行也不是很好。 您可以尝试在cordova项目中填写一个请求,要求他们添加删除所有插件的命令... 是的,我没有太多时间等他们为我添加新命令.. 【参考方案1】:首先,您应该列出您的插件:
cordova plugin list
有了这个结果,你可以简单地做:
cordova plugin remove <PLUGIN_NAME>
例如:
cordova plugin remove org.apache.cordova.media
希望对你有帮助。
【讨论】:
由于某种原因,我的 VS2013 项目没有列出任何内容,并且删除不起作用。转到老式 config.xml 编辑和插件文件夹删除... 这家伙要求命令一次删除所有内容。这是一个简单的文档化答案,一次只删除一个。 最好是cordova plugin remove <PLUGIN_NAME> --save
,这样它就会自动从 config.xml 中删除【参考方案2】:
你也可以用 bash 来做(在切换到你的 Cordova 项目目录之后):
for i in `cordova plugin ls | grep '^[^ ]*' -o`; do cordova plugin rm $i; done
【讨论】:
你测试了吗?【参考方案3】:从我通常使用的终端(osx)
cordova plugin -l | xargs cordova plugins rm
管道,管道一切!
稍微扩展一下:此命令将遍历cordova plugin -l
的结果并将其提供给cordova plugins rm
。
xargs 是您想知道为什么以前不知道的命令之一。 See this tut.
【讨论】:
从科尔多瓦 9.0.0 开始,这不再正常工作,JVE999 的工作正常。【参考方案4】:您可以使用:
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 尝试手动执行cordova plugins ls
,然后看看是否可以使用cordova plugins rm plugin_name
逐个删除插件。从错误来看,您的项目中似乎没有实际存在其中一个插件。使用这个方法你可以找到那个插件。【参考方案5】:
cordova-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 --remove-all --save 正在删除所有插件... -致命错误:列出已安装插件时找不到本地/全局cordova或全局phonegap CLI命令-确保您在项目文件夹中本地或全局安装了 cordova npm 模块。错误:命令失败:phonegap -v 'phonegap' 不是内部或外部命令、可运行程序或批处理文件。 @Naga 您需要在全局 npm 目录中安装 cordova 或 phonegap,该目录由默认前缀 npm 配置变量或您在 .npmrc/npmrc 文件中设置的任何内容指定。如果您在 Windows 上运行,您最有可能在C:\Users\yourusername\AppData\Roaming\npm
中,或者在 UNIX 内核上运行在 /usr/local
中。您可以通过输入终端/命令npm config get prefix
找出您的前缀是什么【参考方案6】:
我用这个 python one-liner 来做:
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 变得更加混乱。【参考方案7】:cordova platform rm android
cordova plugin rm cordova-plugin-firebase
cordova platform add android
【讨论】:
继续为您的答案添加一些上下文或解释。【参考方案8】:据我所记得的 Cordova,您应该在“res”文件夹中有一个 xml 文件,其中包含项目中使用的插件列表。您可能需要从列表中删除那些未使用的插件。你也应该删除相关文件。
【讨论】:
我没有对该从站的物理访问权限。不能这样做。【参考方案9】:这是在 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
。
请删除您的帖子,被问到的问题是“是否有任何命令可以删除所有插件”。【参考方案10】:
基于处理已安装插件列表的脚本可能无法工作,因为已安装插件之间存在依赖关系(例如,cordova-plugin-file 和 cordova-plugin-file-transfer)。
在这个例子中,脚本会首先找到文件插件,然后它会尝试删除它,我们会得到一个错误,因为文件传输需要它。因此,我们将有
【讨论】:
这是一个关于已安装插件之间依赖关系的好点。我认为有一个强制标志--force
,无论如何都会删除插件...【参考方案11】:
运行命令: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
【讨论】:
【参考方案12】: 访问文件夹 列出插件(cordova 插件列表) ionic cordova 插件删除“pluginName”应该没问题!
【讨论】:
【参考方案13】:如果上述解决方案不起作用并且您收到任何未处理的承诺拒绝,请尝试按照以下步骤操作:
清理 Cordova 项目
科尔多瓦干净
-
移除平台
cordova 平台移除 android/ios
-
然后删除插件
cordova 插件移除
-
添加平台并运行项目
它对我有用。
【讨论】:
【参考方案14】:这有点相关,可能对其他人有所帮助,我的一些插件版本已损坏,因此我能够删除插件文件夹的全部内容。请注意,所有对插件的引用仍在 package.json 和 config.xml 文件中。因此,当我删除并添加 Android 平台时,它重新安装了未损坏的插件版本并解决了我的问题。
【讨论】:
【参考方案15】:我可能迟到了,不过有办法……
首先,很遗憾没有cordova plugin rm all
,但我们可以解决它。
只需删除plugins
目录,然后重新添加您需要的所有插件。但请注意,这不是“官方”方式,但它适用于 Android 和 iOS。我刚刚对其进行了测试,因为我需要针对特定平台的类似脚本。
如果您觉得有帮助,请尽可能考虑置顶此回复。
问候 ;)
【讨论】:
以上是关于从项目中删除科尔多瓦插件的主要内容,如果未能解决你的问题,请参考以下文章