[
https://issues.apache.org/jira/browse/CB-14133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Raphael reassigned CB-14133:
----------------------------
Assignee: Raphael
> Avoid reinstalling already installed plugins in cordova-fetch
> -------------------------------------------------------------
>
> Key: CB-14133
> URL: https://issues.apache.org/jira/browse/CB-14133
> Project: Apache Cordova
> Issue Type: Wish
> Components: cordova-cli, cordova-fetch
> Affects Versions: 8.0.0
> Reporter: Zak
> Assignee: Raphael
> Priority: Minor
>
> Relates to CB-13992
> The pull request for CB-13992 removed the {{dependency-ls}} package which
> helped to speed up the platform add step. However, each plugin still gets
> {{npm install}} ed seemingly just to determine the package name.
> Typical workflow is to run {{npm install}} as the first task after cloning a
> node repository. The current practice for cordova is to save plugins to the
> package.json meaning that plugins are already installed to the node_modules
> directory, so running {{npm install}} for each of them individually is
> redundant.
> If the main function in {{cordova-fetch}} is simplified to just return the
> path to the given module (albeit this isn't the most elegant implementation):
> {code:javascript}
> module.exports = function (target, dest, opts = {}) {
> var fetchArgs = opts.link ? ['link'] : ['list'];
> var nodeModulesDir = dest + '/node_modules/';
> // check if npm is installed
> return module.exports.isNpmInstalled()
> .then(function () {
> const mod = target.slice(0, target.lastIndexOf('@'));
> return path.resolve(nodeModulesDir, mod)
> })
> .catch(function (err) {
> throw new CordovaError(err);
> });
> };
> {code}
> the platform add process runs almost instantly rather than taking a few
> minutes.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]