Raphael edited comment on CB-13992 at 6/13/18 3:49 PM:

[https://github.com/apache/cordova-fetch/pull/18] removes the calls to depls

You can test this using cordova@8.0.1-nightly.2018.6.13.f567c26f

was (Author: raphinesse):
[https://github.com/apache/cordova-fetch/pull/18] removes the calls to depls

> Remove dependency-ls or provide option to skip npm checks
> ---------------------------------------------------------
>                 Key: CB-13992
>                 URL: https://issues.apache.org/jira/browse/CB-13992
>             Project: Apache Cordova
>          Issue Type: Wish
>          Components: cordova-cli, cordova-fetch
>    Affects Versions: 8.0.0
>            Reporter: Zak
>            Priority: Minor
>              Labels: performance
> I noticed that our CI builds of cordova projects are very slow when adding 
> the platforms - the stage where plugins are added taks a few minutes for each 
> build. I did some digging around and profiling and eventually found that the 
> slowest part is where `cordova-fetch` uses the `dependency-ls` module to list 
> all installed dependencies of the project before and after installing each 
> plugin.
> This dependency runs `npm list --depth=0` under the hood which is slow (~5 
> seconds per run on a relatively small Ionic project). You can test this by 
> running this small script:
> {{var depls = require('dependency-ls')}}
> {{return depls(process.cwd())}}
> {{.then(function(result) {}}
> {{  console.log(result)}}
> {{})}}
> Note also that the dependency runs twice for each plugin in the project 
> adding 10 seconds per plugin. This means it can take a few minutes just to 
> add a platform to the project - although this is much slower in CI/Docker 
> build environments.
> However, this step seems pretty redundant since the plugins are likely 
> already installed via npm since they are now saved in the package.json file. 
> I made a fork of cordova-fetch which removes this step completely and just 
> uses the existing plugins in `node_modules` and the time to add platform 
> drops down to ~7 seconds (down from minutes) with no change to the actual 
> result since the plugins are already there.
> https://github.com/NextFaze/cordova-fetch/tree/fix/speed
> Since plugins now install via npm and save to package.json by default it 
> would be nice to at least provide the option to skip this npm step for 
> plugins for cases where they already exist in node modules, if it can't be 
> removed completely.

This message was sent by Atlassian JIRA

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

Reply via email to