apache / cordova-lib

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

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

Open fquirin opened 2 years ago

fquirin commented 2 years ago

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

Version information

Checklist

fquirin commented 2 years ago

Ah sorry I just realized this should probably be moved to https://github.com/apache/cordova-cli ?