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

Cordova fetch updates too aggressively and breaks itself

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • None
    • None
    • cordova-fetch
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: