Comments (1)
I was about to open a bug on cordova-fetch with this exact same behaviour but wasn't entirely sure if it should be opened there or here, on cordova-lib. Anyway, I'll just use this issue and expand with my findings on the situation, hopefully it will help understand the real root of the problem.
As reported here, there's a mismatch between the public documentation and the behaviour experienced when installing a cordova plugin that in turn depends on another plugin and specified the commit attribute.
https://github.com/apache/cordova-lib/blob/rel/10.0.0/src/plugman/install.js#L306 : Here the model representing the dependency contains all the correct information as obtained from PluginInfo, namely, URL, ID, git_ref, etc, they are all correctly parsed. Example:
{
"id": "cordova-plugin-secure-storage",
"version": "",
"url": "<https://github.com/OutSystems/cordova-plugin-secure-storage.git>",
"subdir": "",
"commit": "2.6.8-OS5",
"git_ref": "2.6.8-OS5",
"install_dir": "/Users/calcifer/Development/tmp/test-plugin-dependency/myapp/plugins/cordova-plugin-secure-storage"
}
In fact, this is the value of dep
, the input argument for installDependency
but internally it does
cordova-lib/src/plugman/install.js
Lines 545 to 546 in 9fd7354
possiblyFetch
where the "id" argument receives the value of the URL alone. In turn, possiblyFetch
ends up executing cordova-fetch
by providing only the following inputs:
> target
"https://github.com/OutSystems/cordova-plugin-secure-storage.git"
> dest
"/Users/calcifer/Development/tmp/test-plugin-dependency/myapp"
> opts
{
"cli_variables": {},
"save": true,
"searchpath": [],
"link": false,
"pluginInfoProvider": {
...
},
"usePlatformWww": true,
"force": false,
"save_exact": false,
"production": true,
"is_top_level": false,
"graph": {
...
},
"platformVersion": "9.0.0",
"subdir": ".",
"git_ref": "2.6.8-OS5",
"expected_id": "cordova-plugin-secure-storage",
"client": "plugman"
}
As we can see, git_ref
property is correctly set, however, cordova-fetch does nothing with that information and just ends up calling npm install
with the provided URL alone.
This is why I wasn't sure if this is a bug here or on cordova-fetch.
This is replicable on cordova-cli 10.0.0.
from cordova-lib.
Related Issues (20)
- Cordova does not support subfolders, when using semver
- Cordova platform add android, removes node modules with semver HOT 3
- Improve how Cordova checks for required project information HOT 1
- cordova prepare not resolving platform specification correctly for devDependency HOT 1
- NodeJS14: Warning: Accessing non-existent property 'android' HOT 3
- Unable to remove a plugin using a not officially supported platform HOT 1
- Process.env variables are not present in hooks HOT 1
- Cordova doesn't work with NPM 7 HOT 15
- Failure to install plugin with url#git_ref:subdir spec HOT 1
- One test fails on CI HOT 1
- Wrong platform version is detected when dependencies and devDependencies are both present HOT 1
- Fail to add plugin with prerelease version because of "Invalid Version" HOT 1
- Dependencies are wiped on each step of project creation with cordova-lib and NPM 7 HOT 2
- Question About API 24 And API 30 And Question About How Make Jar Using Cordova 9.1.0 And Cordova 10.0.0 (Solution for jcenter() deprecated) HOT 1
- restore-util doesn't properly find platform spec info
- Adding plugins for only specific platforms HOT 10
- Cordova uses the wrong working directory and loads top-level config.xml HOT 1
- Bug(tests): Test#012 failure HOT 5
- Why cordova-android 12.0.0 is not used ? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cordova-lib.