[ https://issues.apache.org/jira/browse/CB-13992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16510439#comment-16510439 ]
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 (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org