Differences between revisions 8 and 9
Revision 8 as of 2014-02-01 16:48:51
Size: 2190
Editor: BasBosman
Comment: Removed some unwanted autolinking
Revision 9 as of 2017-03-13 23:09:19
Size: 0
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Plugin Tooling =

Cordova plugins can be installed and removed via a tool called [[https://git-wip-us.apache.org/asf/repos/cordova-plugman|plugman]], a node.js based tool to install and remove compliant plugins.

Based on the Cordova [[PluginDesign|Plugin Design]], a plugin:

 * declares itself as supporting zero or more Cordova-supported platforms
 * optionally contains web assets, including but not limited to HTML, !JavaScript, images, media, and stylesheets
 * optionally contains platform native code for the Cordova platforms it supports
 * can be dependent on other plugins

== Use Cases ==

 * Install a plugin into a Cordova project for a platform the plugin supports, which means also satisfying:
   * Installing a plugin that has one or more plugins as dependencies
   * When an error occurs during installation, any parts of the installation that have been done must be reversed
   * When installing a plugin into a Cordova project for a platform the plugin does NOT support, the user should see a warning
   * When installing one or more plugins, any file collisions that occur should stop the installation and the tooling should error out
   * When installing multiple plugins, attempting to install different versions of the same plugin should stop installation and the tooling should error out
 * Uninstall a plugin that was already added into a Cordova project, which means also satisfying:
   * Uninstalling a plugin that has multiple dependencies, some of which may still be required by other plugins installed into the application, should only remove the dependencies that would no longer be needed, and maintain the dependencies that are still required by other plugins. These dependencies include but are not limited to:
     * Configuration document changes
     * Other plugins
   * Uninstalling a plugin with specific permission requirements should not affect any permission requirements set within an application's config.xml document
 * Fetch a plugin from a remote or local source and store in a particular "cache" location
 * List plugins that have been added to the project
 * Remove a plugin from a particular "cache" location