Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-13589

Cordova fetch updates too aggressively and breaks itself

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: cordova-fetch
    • Labels:
      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                ajcrites Andrew Crites
              • Votes:
                2 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: