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

Support setting custom npm binary for cordova-fetch

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 8.0.0
    • 8.0.0
    • cordova-fetch
    • 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

          Activity

            People

              Unassigned Unassigned
              knaito Ken
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: