apache / cordova-lib

Apache Cordova Tooling Library
https://cordova.apache.org/
Apache License 2.0
221 stars 243 forks source link

Unable to remove a plugin using a not officially supported platform #850

Open Offpics opened 4 years ago

Offpics commented 4 years ago

Bug Report

Problem

I am unable to remove a custom plugin using cordova plugin remove plugin-name for not officially supported platform.

What is expected to happen?

The plugin should be removed from the project.

What does actually happen?

CLI throws an error: Platform "platform-name" not supported..

Information

Looking at source code, the plugin remove command calls function uninstallPlatform in cordova-lib/src/plugman/uninstall.js. The error I get comes from https://github.com/apache/cordova-lib/blob/1d98b57a1bc51d74217198681c506a608c8396db/src/plugman/uninstall.js#L70-L72

platform_modules are defined inside https://github.com/apache/cordova-lib/blob/master/src/platforms/platformsConfig.json. It makes sense it's not modified when I add the custom platform to the project. This part of the code probably should not depend on the static configuration.

Command or Code

cordova plugin remove plugin-name --verbose
Calling plugman.uninstall on plugin "plugin-name" for platform "platform-name"
Platform "platform-name" not supported.
CordovaError: Platform "platform-name" not supported.
    at Function.module.exports.uninstallPlatform (...\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\uninstall.js:71:31)
    at ...\npm\node_modules\cordova\node_modules\cordova-lib\src\cordova\plugin\remove.js:106:38
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at Function.Module.runMain (internal/modules/cjs/loader.js:834:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

Version information

Cordova: 10.0.0

Checklist

brodycj commented 4 years ago

Thanks, this definitely needs investigation. A PR with proper test cases would be welcome.