In this branch, Plugman is undergoing major changes to make the split of responsibilities between plugman and cordova-cli clear.
platforms/{ios,android,etc}
directories, a top-level www/
and so on.Plugman now holds onto the code of the plugin, instead of cloning it into a temporary folder and throwing it away. By default it uses the cordova/plugins
directory, but this can be overridden with --plugins_dir=some/path
. This enables cordova-cli to use its top-level plugins/
directory.
See the next section for the changes to the commands and arguments.
--fetch
Does the actual downloading of the plugin, from Github, the repository or the local disk.
This supports cordova-cli, which will want to --fetch
once into its top-level plugins/
directory and then --install
once for each platform.
--install
Takes the previously fetched plugin files and installs them into a project. Needs a path to the plugin directory, the path to the project, and the platform, similar to now.
Installs the native code and makes the necessary configuration changes.
--uninstall
Removes the native code and undoes the configuration changes and so on.
Care is required here not to remove permissions that are still needed by other plugins. (Read: config changes should be cleared and recreated from the currently installed plugins every time. This applies to permissions, <plugin>
tags and so on.)
--prepare
Takes over part of cordova-cli‘s prepare
command. Copies all plugins’ Javascript files (more precisely, those specified in <js-module>
tags rather than <asset>
tags) into www/plugins/com.plugin.id/whatever/path/file.js
and constructs the cordova_plugins.json
file.
cordova.js
in this new model will have code that reads this cordova_plugins.json
file via XHR, loads the JS files for the plugins, and does their clobbers and merges.
This is something of a change from the current cordova-cli method, but necessary because we won't be working with a fresh cordova.js
file on each run anymore.