Details
-
Wish
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
8.0.0
-
None
Description
The cordova platform/plugin add commands use cordova-fetch to get the relevant files. It does this by using npm.
However, npm@5.6.x has an issue when installing modules from Github.
npm modules installed from a Github URL will be removed after installing other npm modules.
The issue is on npm’s Github: https://github.com/npm/npm/issues/17379
For example, using node v9.5.0, npm v5.6.0 and cordova 8.0, run
$ cordova plugin add https://github.com/knight9999/HelloWorldPlugin.git
This adds helloworldplugin into the node_modules directory, as shown below:
$ ls node_modules/
fs-extra helloworldplugin jsonfile universalify
graceful-fs install npm
If we add further plugins like so:
$ cordova plugin add cordova-plugin-camera
The previous modules in node_modules directory disappear.
$ ls node_modules/
cordova-plugin-camera
This is fixed in npm@5.7.1, as mentioned in the issue link above.
It is possible that the user cannot update their global npm version due to some other dependencies. I suggest that we add a way for the user to override the npm executable which is used by Cordova. For example, we could add an environment variable as below, which would be used instead of the global npm:
CORDOVA_NPM=/home/user/bin/npm
Attachments
Issue Links
- links to