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