[ https://issues.apache.org/jira/browse/CB-11117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15301237#comment-15301237 ]
ASF GitHub Bot commented on CB-11117: ------------------------------------- Github user nikhilkh commented on a diff in the pull request: https://github.com/apache/cordova-windows/pull/174#discussion_r64677748 --- 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 see you are invoking `getIcons('windows')` and this should do the right thing. Is there a reason why you do not use the config.xml in the platform directory? > 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