[ 
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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to