[ https://issues.apache.org/jira/browse/CB-11117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15262993#comment-15262993 ]
ASF GitHub Bot commented on CB-11117: ------------------------------------- Github user vladimir-kotikov commented on a diff in the pull request: https://github.com/apache/cordova-android/pull/295#discussion_r61502339 --- Diff: bin/templates/cordova/lib/prepare.js --- @@ -26,26 +26,43 @@ var AndroidManifest = require('./AndroidManifest'); var xmlHelpers = require('cordova-common').xmlHelpers; var CordovaError = require('cordova-common').CordovaError; var ConfigParser = require('cordova-common').ConfigParser; +var FileUpdater = require('cordova-common').FileUpdater; -module.exports.prepare = function (cordovaProject) { +module.exports.prepare = function (cordovaProject, options) { var self = this; + var platformResourcesDir = path.relative(cordovaProject.root, path.join(this.locations.root, 'res')); this._config = updateConfigFilesFrom(cordovaProject.projectConfig, this._munger, this.locations); // 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.call(self, cordovaProject)) .then(function () { // update project according to config.xml changes. return updateProjectAccordingTo(self._config, self.locations); }) .then(function () { - handleIcons(cordovaProject.projectConfig, self.root); - handleSplashes(cordovaProject.projectConfig, self.root); + updateIcons.call(self, cordovaProject, platformResourcesDir); + updateSplashes.call(self, cordovaProject, platformResourcesDir); }) .then(function () { - events.emit('verbose', 'updated project successfully'); + events.emit('verbose', 'Prepared project successfully'); + }); +}; + +module.exports.clean = function (options) { + // Unfortunately the cordovaProject isn't passed into the clean() function, + // but the project root dir and config can be resolved here easily. --- End diff -- In CLI world i think there is not much sense in cleaning www folder because we treat platforms as build artifacts and hence this is it's something that is out of user control - instead we just need to ensure that every time when 'prepare' completes the user's 'www' dir and platform's 'www' dir are in sync. > 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