cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-12021) --fetch should use dependency version saved in package.json before default cordova version when adding/restoring
Date Sat, 18 Feb 2017 00:46:44 GMT

    [ https://issues.apache.org/jira/browse/CB-12021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15872815#comment-15872815
] 

ASF GitHub Bot commented on CB-12021:
-------------------------------------

Github user audreyso commented on a diff in the pull request:

    https://github.com/apache/cordova-lib/pull/518#discussion_r101875939
  
    --- Diff: cordova-lib/src/cordova/plugin.js ---
    @@ -388,26 +384,54 @@ module.exports = function plugin(command, targets, opts) {
     
     function determinePluginTarget(projectRoot, cfg, target, fetchOptions) {
         var parsedSpec = pluginSpec.parse(target);
    -
         var id = parsedSpec.package || target;
    -
         // CB-10975 We need to resolve relative path to plugin dir from app's root before
checking whether if it exists
         var maybeDir = cordova_util.fixRelativePath(id);
         if (parsedSpec.version || cordova_util.isUrl(id) || cordova_util.isDirectory(maybeDir))
{
             return Q(target);
         }
    +    // Require project pkgJson.
    +    var pkgJsonPath = path.join(projectRoot, 'package.json');
    +    if(fs.existsSync(pkgJsonPath)) {
    +        delete require.cache[require.resolve(pkgJsonPath)]; 
    +        pkgJson = require(pkgJsonPath);
    +    }
     
    -    // If no version is specified, retrieve the version (or source) from config.xml
    -    events.emit('verbose', 'No version specified for ' + parsedSpec.package + ', retrieving
version from config.xml');
    -    var ver = getVersionFromConfigFile(id, cfg);
    +    // If no parsedSpec.version, use the one from pkg.json or config.xml.
    +    if (!parsedSpec.version) {
    +        // Retrieve from pkg.json.
    +        if(pkgJson && pkgJson.dependencies && pkgJson.dependencies[id])
{
    +            events.emit('verbose', 'No version specified for ' + id + ', retrieving version
from package.json');
    +            parsedSpec.version = pkgJson.dependencies[id];
    +        } else {
    +            // If no version is specified, retrieve the version (or source) from config.xml.
    +            events.emit('verbose', 'No version specified for ' + id + ', retrieving version
from config.xml');
    +            parsedSpec.version = getVersionFromConfigFile(id, cfg);
    +        }
    +    }
    +
    +    // If parsedSpec.version satisfies pkgJson version, no writing to pkg.json. Only
write when
    +    // it does not satisfy.
    +    if(parsedSpec.version) {
    +        if(pkgJson && pkgJson.dependencies && pkgJson.dependencies[parsedSpec.package])
{
    +            var noSymbolVersion;
    +            if (parsedSpec.version.charAt(0) === '^' || parsedSpec.version.charAt(0)
=== '~') {
    +                noSymbolVersion = parsedSpec.version.slice(1);
    +            }
    +            if (!semver.satisfies(noSymbolVersion, pkgJson.dependencies[parsedSpec.package]))
{
    --- End diff --
    
    How does this look?
    
       ```// If parsedSpec.version satisfies pkgJson version, no writing to pkg.json. Only
write when
        // it does not satisfy.
        if(parsedSpec.version) {
            if(pkgJson && pkgJson.dependencies && pkgJson.dependencies[parsedSpec.package])
{
                var noSymbolVersion = parsedSpec.version;
                if (parsedSpec.version.charAt(0) === '^' || parsedSpec.version.charAt(0) ===
'~') {
                    noSymbolVersion = parsedSpec.version.slice(1);
                }
                if (pkgJson.dependencies[parsedSpec.package] === parsedSpec.version) {
                    pkgJson.dependencies[parsedSpec.package] = parsedSpec.version;
                    if (fetchOptions.save === true) {
                        fs.writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 4), 'utf8');
                    }
                }
            }
        }
    
        if (cordova_util.isUrl(parsedSpec.version) || cordova_util.isDirectory(parsedSpec.version)
|| pluginSpec.parse(parsedSpec.version).scope) {
            return Q(parsedSpec.version);
        }```


> --fetch should use dependency version saved in package.json before default cordova version
when adding/restoring
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: CB-12021
>                 URL: https://issues.apache.org/jira/browse/CB-12021
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-fetch, CordovaLib
>            Reporter: Steve Gill
>            Assignee: Audrey So
>              Labels: cordova-7.0.0
>             Fix For: 7.0.0
>
>
> cordova platform add android --save --fetch should use the version of cordova-android
already saved in package.json instead of the version from platformsConfig.json



--
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


Mime
View raw message