Cordova uses the wrong working directory and loads top-level config.xml
- Dominant language
- JavaScript
- Stars
- 231
- Forks
- 242
- Avg merge
- 2h 51m
- Merged PRs (30d)
- 7
Description
# Bug Report
## Problem
My build script creates a sub-folder inside my actual project, copies the `www`, `package.json` and `config.xml` file over, enters the sub-folder and then tries to build everything from there, but instead of using the local `config.xml` the cordova command is reading the file from the top-level folder and uses the same folder as working directory to install plugins etc..
### What is expected to happen?
Commands like `cordova plugin add ...` should read the files from the current working directory first and install node modules and plugins into the same folder.
### What does actually happen?
Commands like `cordova plugin add ...` reference the first `config.xml` found in parent directory and use this as working directory to install node modules and plugins.
## Information
Folder structure:
```
myapp/
|-- config.xml
|-- package.json
|-- www/
|-- build_folder/
| |-- config.xml
| |-- package.json
| |-- www/
| |-- local_plugins/
```
I've tried to use a globally and locally installed Cordova, same issue. Not entirely sure when this problem appeared but it was working for older Cordova builds (v8 or something).
**To fix the issue** one has to **remove or rename** the config.xml from parent folder.
### Command or Code
```
npm install -g cordova@11.0.0
cd myapp/build_folder
cordova plugin add ...
```
After that check where the node modules and plugins are installed.
### Environment, Platform, Device
- Linux 5.10.16.3-microsoft-standard-WSL2 x86_64 GNU/Linux
- Debian 9.5
### Version information
- Cordova: 11.0.0, Android platform 11.0.0
- Other Frameworks: just Cordova
- Operating System: Windows 11, Debian 9.5 WSL2
## 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
Research direction
Start by reproducing `cordova plugin add ...` from `myapp/build_folder` with both `config.xml` files present, then trace the CLI's config discovery and working-directory selection. There are no source files or tests named in the issue. Done means the current directory's config.xml is selected and plugins and node modules are installed under build_folder.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, node.js
- Domain
- cli, mobile-dev, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100