Skip to content

Instantly share code, notes, and snippets.

@bencooling
Created May 26, 2015 03:38
Show Gist options
  • Save bencooling/067571f0a444d1a2a7c8 to your computer and use it in GitHub Desktop.
Save bencooling/067571f0a444d1a2a7c8 to your computer and use it in GitHub Desktop.
gulp nodemon livereload
var gulp = require('gulp');
var livereload = require('gulp-livereload');
var nodemon = require('gulp-nodemon');
var notify = require('gulp-notify');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var minifyCSS = require('gulp-minify-css');
var rename = require('gulp-rename');
// compile scss to css, prefix, minify, save to assets/style.css
gulp.task('compile:css', function() {
return gulp.src(projectScss)
.pipe(sass())
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(minifyCSS({keepBreaks:true}))
.pipe(rename(project.replace('guides/', '') +'.css'))
.pipe(gulp.dest('assets'))
.pipe(livereload());
});
// compile requirejs modules to single js file, save to assets/script.js
gulp.task('compile:js', function() {
rjs({
baseUrl: './',
name: 'assets/vendor/almond/almond',
include: [ 'projects/' +project+ '/main' ],
insertRequire: [ 'projects/' +project+ '/main' ],
out: project.replace('guides/', '')+ '.js',
wrap: true,
mainConfigFile: 'projects/' +project+ '/main.js'
})
.pipe(gulp.dest('assets'))
.pipe(livereload());
});
gulp.task('default', ['watch', 'compile:css', 'compile:js'], function () {
livereload.listen();
nodemon({
scrpt: 'index.js',
ext: 'html js yml hbs', // extensions to watch
watch: 'lib' // watch lib folder
})
.on('restart', function () {
setTimeout(function(){
livereload.changed('index.js');
gulp.src('index.js').pipe(notify('Reloading page, please wait...'));
}, 1000); // 1 second pause
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment