Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
None
-
None
-
None
Description
Related: CB-11252 CB-12262 – these issues say they are fixed, but I can still reproduce them.
Running cordova platform add with plugins directly from github or a file system path will update package.json in a way that subsequently breaks the plugin installation. To get around this, you must currently use cordova platform add $PLATFORM --nofetch.
For example:
<plugin name="cordova-plugin-apprate" spec="https://github.com/pushandplay/cordova-plugin-apprate#0cc8b3b424491d35b1e571a69b21d2ae7cb9cff9" /> <plugin name="phonegap-plugin-push" spec="./src/local-plugins/phonegap-plugin-push"> <variable name="SENDER_ID" value="$SENDER_ID" /> </plugin>
On an initial cordova platform add this will work fine. However, this updates package.json to add these plugins as dependencies:
+ "cordova-plugin-apprate": "git+https://github.com/pushandplay/cordova-plugin-apprate.git#0cc8b3b424491d35b1e571a69b21d2ae7cb9cff9", + "phonegap-plugin-push": "file:src/local-plugins/phonegap-plugin-push",
Now try:
rm -rf node_modules platforms plugins npx npm@5.4.2 install npx cordova@7.1.0 platform add ios
for example. Plugin installation will be unsuccessful:
Failed to restore plugin "phonegap-plugin-push" from config.xml. You might need to try adding it again. Error: Failed to fetch plugin file:src/local-plugins/phonegap-plugin-push via registry. Failed to restore plugin "cordova-plugin-apprate" from config.xml. You might need to try adding it again. Error: Failed to fetch plugin git+https://github.com/pushandplay/cordova-plugin-apprate.git#0cc8b3b424491d35b1e571a69b21d2ae7cb9cff9 via registry.
Manually removing the package.json update (--nosave is broken CB-13463) or using --nofetch will work.