Synopsis

    cordova-cli plugin <command> [options]

Manage project plugins

    add <plugin-spec> [...] ............ Add specified plugins
        --searchpath <directory> ....... When looking up plugins by ID, look in this directory and
                                         each of its subdirectories before hitting the registry.
                                         Multiple search paths can be specified.

        --noregistry ................... Don't search the registry for plugins

        --link ......................... When installing from a local path, creates a symbolic link 
                                         instead of copying files. The extent to which files are linked
                                         varies by platform. Useful for plugin development.
        --save ......................... Save the information for specified plugin into config.xml
        --shrinkwrap ................... Used together with --save, saves the 
                                         installed version numbers to config.xml
        --browserify ................... Compile plugin JS at build time using 
                                         browserify instead of runtime.

        --force ........................ Forces copying source files from the plugin even if the
                                         same file already exists in the target directory.

    remove <pluginid>|<name> [...] ..... Remove plugins with the given IDs/name.
        --save ......................... Remove the information for specified plugin from config.xml

    list .............................. List currently installed plugins
    search [<keyword>] [...] .......... Search http://plugins.cordova.io for plugins matching the keywords
    
Syntax
    <plugin-spec> : <pluginID>[@<version>]|<directory>|<url>[#<commit-ish>][:subdir]

    <plugin> .......................... Plugin id (id of plugin in npm registry or --searchPath)
    <version> ......................... Major.minor.patch version specifier using semver
    <directory> ....................... Directory containing plugin.xml
    <url> ............................. Url to a git repository containing a plugin.xml
    <commit-ish> ...................... Commit/tag/branch reference. If none is specified, 'master' is used
    <subdir> .......................... Sub-directory to find plugin.xml for the specified plugin.
    
Aliases
    plugins -> plugin
    rm -> remove
    ls -> list

Examples
    cordova-cli plugin add cordova-plugin-camera cordova-plugin-file --save --searchpath ~/plugins
    cordova-cli plugin add cordova-plugin-camera@^2.0.0 --save
    cordova-cli plugin add https://github.com/myfork/cordova-plugin-camera.git#2.1.0 --save
    cordova-cli plugin add ../cordova-plugin-camera --save
    cordova-cli plugin add ../cordova-plugin-camera.tgz --save
    cordova-cli plugin rm camera --save
    cordova-cli plugin ls
