UNPKG

adgile

Version:

An easy-to-use automated front-end setup.

64 lines (52 loc) 1.59 kB
'use strict' /** * A submodule for running the `adg build` task, * responsible for setting up the gulp watch server * @module task.server */ const settings = require('../settings.default'), helpers = require('../helpers/index'), chalk = require('chalk'), gulp = require('gulp'); /** * * @param {cb} callback */ function runTask(cb) { helpers.verbose(chalk.grey('Running task "server"')); console.log(chalk.grey('Watching files...')); gulp.watch( [settings.assetsFolder + '/sass/**/*.{scss, sass, css}', '!' + settings.assetsFolder + '/sass/*ie.{scss, sass, css}'], gulp.series('sass') ).on('change', debounce(helpers.watchHandler, 200)); gulp.watch( [settings.assetsFolder + '/js/**/view-*.js'], gulp.series('scripts:view', 'templates') ).on('change', debounce(helpers.watchHandler, 200)); gulp.watch( [settings.assetsFolder + '/js/**/*.js', '!**/view-*.js'], gulp.series('scripts', 'templates') ).on('change', debounce(helpers.watchHandler, 200)); gulp.watch( [settings.assetsFolder + '/images/**/*'], gulp.series('images') ).on('change', debounce(helpers.watchHandler, 200)); gulp.watch( ['templates/**/*'], gulp.series('templates') ).on('change', debounce(helpers.watchHandler, 200)); cb(null); } function debounce(func, delay) { let debounceTimer return function() { const context = this const args = arguments clearTimeout(debounceTimer) debounceTimer = setTimeout(() => func.apply(context, args), delay) } } module.exports = { runTask }