[
https://issues.apache.org/jira/browse/CB-11117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15250646#comment-15250646
]
ASF GitHub Bot commented on CB-11117:
-------------------------------------
Github user vladimir-kotikov commented on a diff in the pull request:
https://github.com/apache/cordova-lib/pull/429#discussion_r60481370
--- Diff: cordova-common/src/FileUpdater.js ---
@@ -0,0 +1,389 @@
+/**
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+*/
+
+"use strict";
+
+var fs = require("fs");
+var path = require("path");
+var shell = require("shelljs");
+var minimatch = require("minimatch");
+
+/**
+ * Updates a target file or directory with a source file or directory.
(Directory updates are
+ * not recursive.) Stats for target and source items must be passed in.
This is an internal
+ * helper function used by other methods in this module.
+ *
+ * @param {string|null} rootDir Root directory (such as a project) to
which target and source
--- End diff --
I see. Is there a reason why we need to emphasize that the `rootDir` is
nullable parameter, but not optional one? From user perspective it is not very
convenient to pass `null` instead of just omitting the param
> 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]