Skip to content

Instantly share code, notes, and snippets.

@asfktz
Last active August 29, 2015 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save asfktz/2166e1b58c552f4db6cd to your computer and use it in GitHub Desktop.
Save asfktz/2166e1b58c552f4db6cd to your computer and use it in GitHub Desktop.
stockoverflow multiple gulp watch question code
var gulp = require('gulp');
var gutil = require('gulp-util');
var bower = require('bower');
var concat = require('gulp-concat');
var sass = require('gulp-sass');
var minifyCss = require('gulp-minify-css');
var rename = require('gulp-rename');
var sh = require('shelljs');
var templateCache = require('gulp-angular-templatecache');
var inject = require('gulp-inject');
var watch = require('gulp-watch');
var batch = require('gulp-batch');
var plumber = require('gulp-plumber');
var paths = {
sass: ['./scss/**/*.scss'],
templates: ['./www/modules/**/*.html'],
scripts: [
'./www/js/templates.build.js',
'./www/modules/app.js',
'./www/modules/**/*.js'
],
};
gulp.task('default', ['sass']);
gulp.task('templates', function(done) {
gulp.src(paths.templates)
.pipe(templateCache('templates.build.js', {
standalone: true,
base: function(file) {
// keep only file name
return file.history[0].match(/\/([^\/]+$)/)[1];
}
}))
.pipe(gulp.dest('./www/js/'))
.on('end', done);
});
gulp.task('inject', function() {
var target = gulp.src('./www/index.html');
var sources = gulp.src(paths.scripts, {
read: false
});
return target.pipe(inject(sources, {
relative : true
}))
.pipe(gulp.dest('./www'));
});
gulp.task('sass', function(done) {
gulp.src('./scss/ionic.app.scss')
.pipe(plumber(function (error) {
gutil.log(gutil.colors.red(error.message));
this.emit('end', done);
}))
.pipe(sass({
sourceComments: 'map'
}))
.pipe(gulp.dest('./www/css/'))
.pipe(minifyCss({
keepSpecialComments: 0
}))
.pipe(rename({
extname: '.min.css'
}))
.pipe(gulp.dest('./www/css/'))
.on('end', done);
});
gulp.task('watch', function () {
watch(paths.sass, batch(function (done) {
gulp.start('sass');
done();
}));
watch(paths.templates, batch(function (done) {
gulp.start('templates');
done();
}));
watch(paths.scripts, batch(function (done) {
gulp.start('inject');
done();
}));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment