簡體   English   中英

如何在我的項目中更新cordova(phonegap)插件?

[英]How to update cordova (phonegap) plugin in my project?

任何人都知道在我的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),它安裝了我第一次安裝它們的文件。

因此我的項目仍然使用舊版本的插件。

所以我想知道,如何更新插件。 任何想法? 我是否必須手動將它們復制到平台文件夾? 這記錄在哪里?

提前致謝。

所以最終我發現了這個問題。

看來, org.apache.cordova.fileorg.apache.cordova.file-transfer之間存在某種依賴關系。 因此,如果安裝了file-transfer插件,則不會刪除文件插件,因此如果平台文件夾不會更新。

解決方案是首先刪除file-transfer插件,然后刪除文件插件。 然后添加文件和file-transfer插件將正確地更新所有平台中的插件,正如人們所期望的那樣。

花了一些時間才弄明白,但是訣竅。

派對有點晚了,但我在我的cordova-check-plugins工具中添加了一個選項,在這種情況下可能會有用:

--force-update

強制更新依賴插件。 默認情況下,Cordova / Phonegap不允許刪除其他插件所依賴的插件,因此不允許更新它們。 例如, cordova-plugin-file-transfer取決於cordova-plugin-file 通過設置此選項,將更新兩個插件(如果有可用更新)。 沒有它,只會更新“父”插件 - 在本例中為cordova-plugin-file-transfer

因此,如果您全局安裝該工具:

$ npm install -g cordova-check-plugins

然后從Cordova項目的根目錄運行,你可以強制更新Cordova不允許刪除cordova-plugin-file (例如cordova-plugin-file ),因為其他插件依賴於它們(例如cordova-plugin-file-transfer ):

$ cordova-check-plugins --update=auto --force-update

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM