Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
cordova@7.1.0
-
None
-
None
Description
I am struggling to get up and running with cordova@7.1.0 sometime now. Maybe I am doing something wrong here but I can't figure it out. It seems to me something is going wrong with locally defined plugins that needs to be installed and the way it is saved into package.json.
So to get upgraded I first installed the latest version npm install -g cordova@7.1.0. Then I did a cordova prepare.
This prepare failed, after some digging and trying it seemed that some locally plugins that needs to be installed into the project are interrupting other plugins. So I needed to disable the cordova-fetch. I set this globally with cordova config set fetch false.
After this config change the codova prepare command went all fine. So I thought this is it.
But when I tried to let my project be build by my CI server it failed on installating NPM packages.
Because a npm install command will install the dependencies defined in package.json it will install the cordova plugins also. But in the beginning my plugins are in there like this:
{ "name": "myApp", "version": "1.0.0", "description": "myApp description", "dependencies": { "cordova-android": "6.3.0", "cordova-browser": "5.0.1", "cordova-ios": "4.5.2", "cordova-plugin-myplugin": "resources/cordova-plugin-myplugin", "cordova-plugin-myplugin-locker": "resources/cordova-plugin-myplugin-locker" }, "devDependencies": { }, "scripts": { }, "cordova": { "platforms": [ "browser", "android", "ios" ], "plugins": { "cordova-plugin-myplugin": {}, "cordova-plugin-myplugin-locker": {} } } }
With above npm install fails and tries to get the dependecies from git, which is incorrect. So I search the package.json definition and they say I should put file: in front of it, like this:
{ "name": "myApp", "version": "1.0.0", "description": "myApp description", "dependencies": { "cordova-android": "6.3.0", "cordova-browser": "5.0.1", "cordova-ios": "4.5.2", "cordova-plugin-myplugin": "file:resources/cordova-plugin-myplugin", "cordova-plugin-myplugin-locker": "file:resources/cordova-plugin-myplugin-locker" }, "devDependencies": { }, "scripts": { }, "cordova": { "platforms": [ "browser", "android", "ios" ], "plugins": { "cordova-plugin-myplugin": {}, "cordova-plugin-myplugin-locker": {} } } }
Now NPM finds the dependecies OK, but now when I do a cordova prepare again it throws an error that the plugin can't be installed from file:resources/cordova-plugin-myplugin.
So I get stuck into different needs for different tools. Any ideas?
Attachments
Issue Links
- is related to
-
CB-12918 Inconsistent behavior between "cordova prepare" and "cordova plugin add" when installing plugin from local folder
- Reopened
-
CB-13589 Cordova fetch updates too aggressively and breaks itself
- Closed
-
CB-13768 cordova-fetch is unable to install from url or file system using package.json
- Closed
-
CB-13637 Unable to handle local plugins properly
- Closed
- links to