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

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

Github user jasongin commented on a diff in the pull request:

    https://github.com/apache/cordova-windows/pull/174#discussion_r64834967
  
    --- Diff: template/cordova/lib/prepare.js ---
    @@ -425,19 +451,39 @@ module.exports.prepare = function (cordovaProject) {
         AppxManifest.purgeCache();
     
         // Update own www dir with project's www assets and plugins' assets 
and js-files
    -    return Q.when(updateWwwFrom(cordovaProject, this.locations))
    +    return Q.when(updateWww(cordovaProject, this.locations))
         .then(function () {
             // update project according to config.xml changes.
             return updateProjectAccordingTo(self._config, self.locations);
         })
         .then(function () {
    -        copyImages(cordovaProject.projectConfig, self.root);
    +        copyImages(cordovaProject, self.locations);
         })
         .then(function () {
             events.emit('verbose', 'Prepared windows project successfully');
         });
     };
     
    +module.exports.clean = function (options) {
    +    // A cordovaProject isn't passed into the clean() function, because it 
might have
    +    // been called from the platform shell script rather than the CLI. 
Check for the
    +    // noPrepare option passed in by the non-CLI clean script. If that's 
present, or if
    +    // there's no config.xml found at the project root, then don't clean 
prepared files.
    +    var projectRoot = path.resolve(this.root, '../..');
    +    var projectConfigFile = path.join(projectRoot, 'config.xml');
    --- End diff --
    
    I updated the PRs for all 3 platforms to use the platform's config.xml for 
cleaning.
    
    They still check for the presence of config.xml at the project root, 
because I want to be extra careful not to do this clean operation in a 
platform-centric workflow.


> Preparing platforms should skip copying files which haven't changed
> -------------------------------------------------------------------
>
>                 Key: CB-11117
>                 URL: https://issues.apache.org/jira/browse/CB-11117
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: Android, iOS, Windows
>            Reporter: Jason Ginchereau
>            Assignee: Jason Ginchereau
>
> Many cordova CLI commands include a "prepare" operation, including 'cordova 
> build', 'cordova run', 'cordova plugin add', and more. Every time each of 
> those commands runs, the target platform is "prepared", which involves 
> copying all files from the [<project>/www, 
> <project>/platforms/<platform>/platform_www, <project>/merges/<platform>] to 
> the platform's target www folder, as well as copying a bunch of icons and 
> splash screens to platform-specific locations.
> For the very first prepare of a platform, all that file copying is necessary. 
> But most of the time after that most of the files being copied have not 
> changed and therefore don't really need to be copied again. So the typical 
> developer inner loop (edit a few source files, build and run the app, repeat) 
> is a lot slower than it could be for a Cordova project, especially one that 
> includes a significant number of source files or resources.
> Instead, Cordova should be smart enough to skip copying of files that haven't 
> changed, based on their last-modified timestamp. (But also there should still 
> be a way to force a clean/full/non-incremental build if desired.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to