apache / apache/cordova-lib

Unable to remove a plugin using a not officially supported platform

Open
#850 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
231
Forks
242
Avg merge
2h 51m
Merged PRs (30d)
7

Description

# 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

- [x] I searched for existing GitHub issues
- [x] I updated all Cordova tooling to most recent version
- [x] I included all the necessary information above

Contributor guide

Open the contributing guide

Research direction

Start with cordova-lib/src/plugman/uninstall.js, especially uninstallPlatform and its use of platform_modules, then trace the call from src/cordova/plugin/remove.js. Reproduce the reported plugin removal command with a custom platform and inspect platforms/platformsConfig.json. Done means the plugin is removed for an unsupported custom platform without regressing officially supported platforms.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
cli, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.