var gulp = require("gulp"); var fileUrl = require("file-url"); var path = require("path"); var xtend = require("xtend"); var rfr = require("rfr"); var livereload = require("gulp-livereload"); var rename = require("gulp-rename"); var presetES2015 = require("@joepie91/gulp-preset-es2015"); var presetJade = require("@joepie91/gulp-preset-jade"); var presetSCSS = require("@joepie91/gulp-preset-scss"); var presetRiot = require("@joepie91/gulp-preset-riot"); var patchLivereloadLogger = require("@joepie91/gulp-partial-patch-livereload-logger"); var runElectron = require("@joepie91/gulp-partial-electron"); patchLivereloadLogger(livereload); var sources = { "babel-main": "app.js", "babel-lib": "src/**/*.js", "jade-views": "src/views/**/*.jade", "sass-main": "src/stylesheets/**/*.scss", "riot-components": "src/components/**/*.tag" } gulp.task("electron", ['babel-lib', 'babel-main', 'jade-views', 'sass-main', 'riot-components'], function() { var electronProcess = runElectron(); }); gulp.task('babel-main', function() { return gulp.src(sources["babel-main"]) .pipe(presetES2015({ livereload: livereload, basePath: __dirname })) .pipe(rename("app.es5.js")) .pipe(gulp.dest("./")); }); gulp.task('babel-lib', function() { return gulp.src(sources["babel-lib"]) .pipe(presetES2015({ livereload: livereload, basePath: __dirname })) .pipe(gulp.dest("./lib/")); }); gulp.task("jade-views", function() { return gulp.src(sources["jade-views"]) .pipe(presetJade({ livereload: livereload, basePath: __dirname })) .pipe(gulp.dest("lib/views/")); }); gulp.task("sass-main", function() { return gulp.src(sources["sass-main"]) .pipe(presetSCSS({ livereload: livereload, basePath: __dirname })) .pipe(gulp.dest("lib/stylesheets/")); }); gulp.task("riot-components", function() { return gulp.src(sources["riot-components"]) .pipe(presetRiot({ livereload: livereload, basePath: __dirname })) .pipe(gulp.dest("lib/components/")); }); gulp.task('watch', function () { livereload.listen(); Object.keys(sources).forEach(function(source) { gulp.watch(sources[source], [source]); }); }); gulp.task('default', ['watch', 'electron']);