Skip to content

Instantly share code, notes, and snippets.

@digitalgravy
Created May 6, 2015 09:30
Show Gist options
  • Save digitalgravy/49b72aadbd2fea477579 to your computer and use it in GitHub Desktop.
Save digitalgravy/49b72aadbd2fea477579 to your computer and use it in GitHub Desktop.
Quick example of a Gulpfile and the layout I use. In development I'd use gulp watch.
var gulp = require('gulp'),
/* DEPENDENCIES */
gulp_sass = require('gulp-sass'),
gulp_clean = require('gulp-clean'),
gulp_source = require('gulp-sourcemaps'),
run_sequence = require('run-sequence'),
src = 'src_dir',
assets = '/assets',
css = '/css',
data = '/data',
html = '/html',
js = '/js',
lib = '/lib',
sass = '/sass',
swig = '/swig',
ts = '/ts',
src_css = src + css,
src_js = src + js,
src_js_lib= src + js + lib,
src_html = src + html,
src_sass = src + sass,
src_swig = src + swig,
src_ts = src + ts,
trg = 'target_dir',
trg_assets= trg + assets;
/* STYLES */
gulp.task('sass', function () {
gulp.src(src_sass + '/main.scss')
.pipe(gulp_source.init())
.pipe(gulp_sass({
errLogToConsole: true
}))
.pipe(gulp_source.write())
.pipe(gulp.dest(src_css));
});
/* WATCH */
gulp.task('watch:dev', function(){
/* SASS */
gulp.watch([src_sass + '/*.scss'], ['sass']);
/* SWIG */
gulp.watch([src_swig + '/*.swig'], ['swig']);
/* DEPLOY */
gulp.watch([src_css + '/*.css', src_html + '/*.html'], ['deploy']);
});
/* DEPLOYMENT */
gulp.task('deploy', ['clean'], function(){
/* HTML */
gulp.src(src_html + '/*.html').pipe(gulp.dest(trg));
/* CSS */
gulp.src(src_css + '/main.css').pipe(gulp.dest(trg_assets));
});
/* DEVELOPMENT */
gulp.task('watch', function () {
run_sequence(['sass', 'swig'], 'deploy', 'watch:dev');
});
/* CLEANING */
gulp.task('clean', function(){
return gulp.src(trg, {read: false})
.pipe(gulp_clean({force: true}));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment