How to force cordova to recompile added plugins?

2020-08-09 09:20发布

问题:

It seems cordova caches compiled plugins, when i change the source code of plugins (.java files on windows), the only way to force cordova to recompile the plugin is to remove and then add that plugin again, which is a pain . Is there any way to clean cordova cache or force it to recompile added plugins ?

回答1:

Not afaik, the only workaround I've found is to use a before_prepare script to remove and add the plugin every time you prepare the app:

/
|--hooks/
   |--before_prepare/
      |--000_RefreshPluginXXX.sh

000_RefreshPluginXXX.sh:

!#/user/bin/env bash
cordova plugin rm yourPlugin
cordova plugin add yourPlugin

See here for details. Hope that sh file works under windows environment, otherwise you can do it with a .bat file.

Beaware that this is going to remove, download and reinstall the specified plugins for every platform every time that you prepare your app (prepare occurs when you build/emulate/compile)



回答2:

Afaik there's no way to recompile the original files.

The quickest and most dirty way (still the best for quick checks) is to change the files under

e.g. (Android)

platforms/android/src/YOUR_PACKAGE/FILE_TO_CHANGE

that way it's automatically recompiled.

Obviously this file can be easily deleted or overwritten so it's just a way to quickly test SMALL changes.



回答3:

From cordova>=6.0 you can install and link your local plugin path to the project instead of copy it so it will recompile each time you build.

cordova plugin add /local/path/to-plugin/ --link    

https://cordova.apache.org/docs/en/6.x/reference/cordova-cli/index.html#cordova-plugin-command