--nosave flag causes errors when adding platforms/plugins
- Dominant language
- JavaScript
- Stars
- 967
- Forks
- 344
- Avg merge
- 8h 41m
- Merged PRs (30d)
- 9
Description
# Bug Report
## Problem
On several `cordova` commands, the `nosave` flag causes issues.
------------------------------------------------------------
### What is expected to happen?
Platform/plugin correctly installed. Installation succeeds without the `nosave` flag.
### What does actually happen?
On `cordova platform add ios --nosave`:
```
~/Development/git/test-cordova/test » cordova platform add ios --nosave
Using cordova-fetch for cordova-ios@^5.0.0
Adding ios project...
Creating Cordova project for the iOS platform:
Path: platforms/ios
Package: io.cordova.hellocordova
Name: HelloCordova
iOS project created with cordova-ios@5.0.0
Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project
Installing "cordova-plugin-whitelist" for ios
Failed to install 'cordova-plugin-whitelist': Error: Cannot find module './src/superspawn'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
at Function.Module._load (internal/modules/cjs/loader.js:508:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at Object.get (/Users/xxx/Development/git/test-cordova/test/node_modules/cordova-common/src/util/addProperty.js:27:44)
at Object. (/Users/xxx/Development/git/test-cordova/test/platforms/ios/cordova/lib/Podfile.js:26:43)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
Failed to restore plugin "cordova-plugin-whitelist" from config.xml. You might need to try adding it again. Error: Error: Cannot find module './src/superspawn'
```
On `cordova plugin add xxx --nosave` (doesn't matter which plugin):
```
~/Development/git/test-cordova/test » cordova plugin add cordova-plugin-camera --nosave
Installing "cordova-plugin-camera" for android
cordova-android version check failed ("/Users/xxx/Development/git/test-cordova/test/platforms/android/cordova/version"), continuing anyways.
Unable to load PlatformApi from platform. Error: Cannot find module 'properties-parser'
Failed to install 'cordova-plugin-camera': Error [ERR_UNHANDLED_ERROR]: Unhandled error. (The platform "android" does not appear to be a valid cordova platform. It is missing API.js. android not supported.)
at CordovaEventEmitter.emit (events.js:178:17)
at CordovaEventEmitter.emit (/Users/xxx/.nvm/versions/node/v10.15.3/lib/node_modules/cordova/node_modules/cordova-common/src/events.js:69:22)
at Object.getPlatformApiFunction (/Users/xxx/.nvm/versions/node/v10.15.3/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/util.js:371:20)
at Object.getPlatformApi (/Users/xxx/.nvm/versions/node/v10.15.3/lib/node_modules/cordova/node_modules/cordova-lib/src/platforms/platforms.js:55:32)
at handleInstall (/Users/xxx/.nvm/versions/node/v10.15.3/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:580:29)
at /Users/xxx/.nvm/versions/node/v10.15.3/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:349:28
at process._tickCallback (internal/process/next_tick.js:68:7)
Unhandled error. (The platform "android" does not appear to be a valid cordova platform. It is missing API.js. android not supported.)
```
## Information
### Command or Code
cordova platform add ios android --nosave
cordova plugin add cordova-plugin-camera --nosave
### Environment, Platform, Device
Some commands fail for ios, other for android
### Version information
- osx 10.14.4
- npm 6.4.1
- node 10.15.3
- cordova (cli) 9.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
Assessment
This issue has not been assessed yet.