任何人都知道在我的cordova / phonegap项目中更新cordova插件的正确方法是什么?前段时间我安装了文件插件:
cordova plugin add org.apache.cordova.file
一切都很好 . 现在我意识到有一个新版本的文件插件,所以我想更新以获得新功能 . 但是,我还没有找到一个体面的更新方式 . 实际上,我根本无法更新 .
当我运行remove命令时:
cordova plugin rm org.apache.cordova.file
我收到以下消息:
Deleting plugin org.apache.cordova.file
No dangling plugins to remove.
有趣的是,如果我跑
cordova plugin
之后,我仍然在安装的插件列表中看到org.apache.cordova.file . 此外,文件系统没有单一更改 . 没有删除任何内容,也没有更新文件 .
然后我尝试再次添加一个插件(至于更新插件,建议删除它并再次添加):
cordova plugin add org.apache.cordova.file
哪个输出:
Fetching plugin "org.apache.cordova.file" via plugin registry
Plugin "org.apache.cordova.file" already installed on android.
Plugin "org.apache.cordova.file" already installed on ios.
而且,即使这会带来新版本的java和javascript文件(以及其他一些文件),正如我所料,它只会将它们带到myproject / plugins文件夹中 .
它不会更新平台文件夹中的文件(myproject / platforms / android / assets / www / plugins和myproject / platforms / ios / www / plugins),它安装了我第一次安装它们的文件 .
因此我的项目仍然使用旧版本的插件 .
所以我想知道,如何更新插件 . 任何的想法?我是否必须手动将它们复制到平台文件夹?这记录在哪里?
提前致谢 .
2 回答
所以最终我发现了这个问题 .
看来,
org.apache.cordova.file
和org.apache.cordova.file-transfer
之间存在某种依赖关系 . 因此,如果安装了file-transfer
插件,则不会删除文件插件,因此如果平台文件夹不会更新 .解决方案是首先删除
file-transfer
插件,然后删除文件插件 . 然后添加文件和file-transfer
插件将正确地更新所有平台中的插件,正如人们所期望的那样 .花了一些时间才弄明白,但是诀窍 .
派对有点晚了,但我在我的cordova-check-plugins工具中添加了一个选项,在这种情况下可能会有用:
因此,如果您全局安装该工具:
然后从Cordova项目的根目录运行,您可以强制更新Cordova不允许删除的插件(例如
cordova-plugin-file
),因为其他插件依赖于它们(例如cordova-plugin-file-transfer
):