Allow gulp build to work on Windows

The problem with gulp pipeline is that it replaces /src/ with /lib/ in
filenames as a regex replace operation. The regex only worked for Unix
before. Here we add a 2nd regex accomodate Windows backslashes and choose
between the two by looking if we're using path.win32.  The Unix regex is
changed to only match the package/*/src. This seemingly has no effect on
the build.

Fixes T6855
This commit is contained in:
Andrey Taranov 2015-12-18 13:00:09 +01:00
parent 31032ee7ad
commit dd0b96ca5d

View File

@ -11,6 +11,16 @@ var path = require("path");
var scripts = "./packages/*/src/**/*.js"; var scripts = "./packages/*/src/**/*.js";
var dest = "packages"; var dest = "packages";
var srcEx, libFragment;
if (path.win32 === path) {
srcEx = /(packages\\[^\\]+)\\src\\/;
libFragment = "$1\\lib\\";
} else {
srcEx = new RegExp("(packages/[^/]+)/src/");
libFragment = "$1/lib/";
}
gulp.task("default", ["build"]); gulp.task("default", ["build"]);
gulp.task("build", function () { gulp.task("build", function () {
@ -22,7 +32,7 @@ gulp.task("build", function () {
})) }))
.pipe(through.obj(function (file, enc, callback) { .pipe(through.obj(function (file, enc, callback) {
file._path = file.path; file._path = file.path;
file.path = file.path.replace(/^([^\\]+)\/src/, "$1/lib"); file.path = file.path.replace(srcEx, libFragment);
callback(null, file); callback(null, file);
})) }))
.pipe(newer(dest)) .pipe(newer(dest))