[
https://issues.apache.org/jira/browse/CB-13992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Raphael resolved CB-13992.
--------------------------
Resolution: Fixed
[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: [email protected]
For additional commands, e-mail: [email protected]