You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/10/08 03:33:20 UTC

[jira] [Commented] (CB-11985) Cordova hits internet unnecessarily when getting cached platform or plugin

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

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

GitHub user TimBarham opened a pull request:

    https://github.com/apache/cordova-lib/pull/498

    CB-11985 Check if cached platform/plugin exists before 'npm cache'

    ### What does this PR do?
    Before calling `npm cache add` when installing a platform or plugin, look for an existing `package.tgz` file in the cache directory. This avoids unnecessary `npm` call with long timeout if not connected to the internet.
    
    Background: First time build failures in Cordova tools in Visual Studio are primarily due to `npm` failures. Therefore we are working to avoid any requirement for `npm` to hit the internet in simple build scenarios. This includes pre-installing cached versions of certain platforms and plugins. But we only get the full benefit if Cordova uses these cached versions if it finds them, without calling npm cache add.
    
    A couple of things to note:
    * This change uses shared code for platforms and plugins, and means plugins will also be cached to the `.cordova` directory rather than the global npm cache directory. Is that a concern?
    * It is likely this change will be meaningless with the proposed changes to installing platforms and plugins in Cordova 7.x. We'll cross the bridge when we come to it 😄.
    
    ### What testing has been done on this change?
    Local testing.
    
    ### Checklist
    - [x] [Reported an issue](http://cordova.apache.org/contribute/issues.html) in the JIRA database
    - [x] Commit message follows the format: "CB-3232: (android) Fix bug with resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform affected.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/TimBarham/cordova-lib use-cached-platform

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cordova-lib/pull/498.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #498
    
----
commit 667e774d46399cf97a9481c3890fa7a862871d46
Author: TimBarham <ti...@microsoft.com>
Date:   2016-10-07T22:58:35Z

    CB-11985 Check if cached platform/plugin exists before 'npm cache'
    
    This avoids unnecessary npm call with long timeout if not connected to the internet.

----


> Cordova hits internet unnecessarily when getting cached platform or plugin
> --------------------------------------------------------------------------
>
>                 Key: CB-11985
>                 URL: https://issues.apache.org/jira/browse/CB-11985
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: CordovaLib
>    Affects Versions: 6.3.1
>            Reporter: Tim Barham
>            Assignee: Tim Barham
>
> In you are disconnected from the internet and try to add a platform or plugin that has previously been cached, Cordova eventually successfully installs the platform/plugin, but only after a very long wait.
> We could check for the existence of the cached platform/plugin before calling {{npm cache add}}. This would mean an instant return when not connected to the internet.
> Note that this will only help if we are adding a specific version - when a version range is specified, we need to hit the internet anyway to find the matching version.
> Background: First time build failures in Cordova tools in Visual Studio are primarily due to {{npm}} failures. Therefore we are working to avoid any requirement for {{npm}}} to hit the internet in simple build scenarios. This includes pre-installing cached versions of certain platforms and plugins. But we only get the full benefit if Cordova uses these cached versions if it finds them, without calling {{npm cache add}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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