You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Marcus Pridham (JIRA)" <ji...@apache.org> on 2017/04/28 16:15:04 UTC

[jira] [Created] (CB-12738) cordova ignores plugin dependency version

Marcus Pridham created CB-12738:
-----------------------------------

             Summary: cordova ignores plugin dependency version
                 Key: CB-12738
                 URL: https://issues.apache.org/jira/browse/CB-12738
             Project: Apache Cordova
          Issue Type: Bug
          Components: cordova-cli, cordova-lib
            Reporter: Marcus Pridham


You can see this with the cordova-plugin-file-transfer.  When you install this plugin and it installs the cordova-plugin-file plugin dependency the CLI writes
Fetching plugin "cordova-plugin-file" via npm

The first problem is in the PluginInfo _parseDependency function
https://git-wip-us.apache.org/repos/asf?p=cordova-lib.git;a=blob;f=cordova-common/src/PluginInfo/PluginInfo.js;h=48174707b0dbf6f60eb65faeb14c51e4b3868b1b;hb=HEAD#l108

It does not parse out the dependency version.  This part:

        var dep =
            { id : tag.attrib.id
            , url : tag.attrib.url || ''
            , subdir : tag.attrib.subdir || ''
            , commit : tag.attrib.commit
            };

Should be:
        var dep =
            { id : tag.attrib.id
            , url : tag.attrib.url || ''
            , subdir : tag.attrib.subdir || ''
            , commit : tag.attrib.commit
            , version : tag.attrib.version
            };
   
The second problem is in the plugman installDependency method
https://git-wip-us.apache.org/repos/asf?p=cordova-lib.git;a=blob;f=cordova-lib/src/plugman/install.js;h=fca77c688d2b8f19ce63cb176f50ecd44c9a9032;hb=HEAD#l603

The dep_src is only constructed using the plugin id.

This:

var dep_src = dep.url.length ? dep.url : dep.id;

Should look something like:

        var dep_src;

        if (dep.url.length) {
            dep_src = dep.url;
        }
        else if (dep.version) {
            dep_src = dep.id + '@' + dep.version;
        } else {
            dep_src = dep.id;
        } 


With these changes the Cordova CLI correctly reports:

Fetching plugin "cordova-plugin-file@^4.0.0" via npm




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org