From c1eff70f4a4f86a8daecb1f7adbdb4711960b589 Mon Sep 17 00:00:00 2001 From: Daniel Stolt Date: Wed, 10 Jun 2015 16:26:51 +0300 Subject: [PATCH] Refactored client-side asset build automation to fix watch triggering. --- .../Modules/Orchard.Layouts/gulpfile.js | 25 +++++++++---------- .../Modules/Orchard.Layouts/package.json | 6 ++--- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/gulpfile.js b/src/Orchard.Web/Modules/Orchard.Layouts/gulpfile.js index 290f02f5f..b530865f1 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/gulpfile.js +++ b/src/Orchard.Web/Modules/Orchard.Layouts/gulpfile.js @@ -1,7 +1,7 @@ /// /* - * This gulpfile enables building of front-end assets in this project. + * This gulpfile provides an automated build pipeline for client-side assets in this project. * * To use this file you will need to: * - Install Node.js on your machine @@ -13,9 +13,7 @@ */ var gulp = require("gulp"), - watch = require("gulp-watch"), - watchLess = require("gulp-watch-less"), - batch = require("gulp-batch"), + newer = require("gulp-newer"), plumber = require("gulp-plumber"), sourcemaps = require("gulp-sourcemaps"), less = require("gulp-less"), @@ -65,14 +63,15 @@ gulp.task("buildLess", function () { }); gulp.task("watchLess", function () { - return merge([ - lessPipelineFrom(watchLess(srcLessLib, { maxListeners: 64 }), "Styles", "Lib.css"), - lessPipelineFrom(watchLess(srcLessLayoutEditor, { maxListeners: 64 }), "Styles", "LayoutEditor.css") - ]); + var watcher = gulp.watch([srcLessLib, srcLessLayoutEditor], ["buildLess"]); + watcher.on("change", function (event) { + console.log("LESS file " + event.path + " was " + event.type + ", running the 'buildLess' task..."); + }); }); function lessPipelineFrom(inputStream, outputFolder, outputFile) { return inputStream + .pipe(newer(outputFolder + "/" + outputFile)) .pipe(plumber()) .pipe(sourcemaps.init()) .pipe(less()) @@ -138,15 +137,15 @@ gulp.task("buildJs", function () { }); gulp.task("watchJs", function () { - return merge([ - jsPipelineFrom(watch(srcJsLib)), - jsPipelineFrom(watch(srcJsLayoutEditor)), - jsPipelineFrom(watch(srcJsModels)) - ]); + var watcher = gulp.watch([srcJsLib, srcJsLayoutEditor, srcJsModels], ["buildJs"]); + watcher.on("change", function (event) { + console.log("JavaScript file " + event.path + " was " + event.type + ", running the 'buildJs' task..."); + }); }); function jsPipelineFrom(inputStream, outputFolder, outputFile) { return inputStream + .pipe(newer(outputFolder + "/" + outputFile)) .pipe(plumber()) .pipe(sourcemaps.init()) .pipe(concat(outputFile)) diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/package.json b/src/Orchard.Web/Modules/Orchard.Layouts/package.json index eb07d8567..2338e5585 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/package.json +++ b/src/Orchard.Web/Modules/Orchard.Layouts/package.json @@ -1,9 +1,7 @@ { "devDependencies": { "gulp": "^3.8.11", - "gulp-watch": "^4.2.4", - "gulp-watch-less": "^1.0.1", - "gulp-batch": "^1.0.5", + "gulp-newer": "^0.5.0", "gulp-plumber": "^1.0.0", "gulp-sourcemaps": "^1.5.2", "gulp-less": "^3.0.3", @@ -12,7 +10,7 @@ "gulp-uglify": "^1.2.0", "gulp-rename": "^1.2.2", "gulp-concat": "^2.5.2", - "merge-stream": "^0.1.7" + "del": "^1.1.1" }, "dependencies": { } }