apache / apache/cordova-lib

Cordova uses the wrong working directory and loads top-level config.xml

Open
#893 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

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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.