You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/08/31 07:29:00 UTC

[jira] [Commented] (CB-14133) Avoid reinstalling already installed plugins in cordova-fetch

    [ https://issues.apache.org/jira/browse/CB-14133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16598361#comment-16598361 ] 

ASF GitHub Bot commented on CB-14133:
-------------------------------------

kirillgroshkov commented on issue #24: CB-14133 Avoid reinstalling already installed packages
URL: https://github.com/apache/cordova-fetch/pull/24#issuecomment-417577795
 
 
   I'm just wondering - what are these binary files in the end of PR, e.g `spec/support/repo-name-neq-plugin-id.git/refs/heads/master`? Are they here by mistake or it's part of the plan?

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> 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: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org