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

Problems with using plugins from local file system

    Details

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

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                markdark Mark Veenstra
              • Votes:
                8 Vote for this issue
                Watchers:
                12 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: