[
https://issues.apache.org/jira/browse/CB-11117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15301479#comment-15301479
]
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_r64688561
--- 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 --
That's a reasonable question. I didn't want the clean function to depend on
a previous prepare having completed successfully (so that the platform
config.xml was merged). But I'm not sure that's best, and maybe it would be
cleaner just to use that file.
I did this the same way for the other 2 platforms, so this discussion would
apply there also.
> 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: [email protected]
For additional commands, e-mail: [email protected]