Hi, I have an idea how we can add more flexibility to plugin developers and 
would like to discuss it.

Note, right now we have Application Developers - someone who use Cordova for 
developing applications and Plugin Developers - someone who creates plugins so 
that Application Developers can use them. For Application Developers we expose  
hooks so that they can customize their build/package/etc process. I want us to 
provide similar sort of flexibility to Plugin Developers so that they can go 
beyond of <source/>, <framework/>  tags and get mechanism to add custom 
installation,  build logic required by a plugin. Example usage will include: 
downloading/compiling additional binaries, marking source file to be copied to 
output dir, changing target build platform,  etc. At present time the steps 
described could be only achieved by hooks manually added by Application 
Developer, but the right way is to allow Plugin Developer to expose this as 
part of plugin definition.

I personally like how npm-scripts[1] work so propose to introduce additional 
<scripts> section in plugin.xml, for example

<scripts preinstall="preinstall.js" postinstall="afterinstall.js" />

preinstall.js is called before plugman.raw.install(platform, platformRoot, 
path.basename(dir), pluginsDir, options) and could be used to check system 
requirements, download/compile required libraries, etc

afterinstall.js is called after and could be used  to add/configure additional 
project references,  etc
uninstall.js - for discussion, could be used for clean up, etc

As for required parameters I think we should pass at least application folder 
and target platform.

Thoughts? Propose to discuss this on the monthly sync, Mar 4, 2014 (7pm EST)

[1] https://www.npmjs.org/doc/misc/npm-scripts.html

-Sergey

Reply via email to