Skip to content

Instantly share code, notes, and snippets.

@robbiemu
Last active September 17, 2016 17:25
Show Gist options
  • Save robbiemu/5deda56a87047e4348a45920fa48c1bd to your computer and use it in GitHub Desktop.
Save robbiemu/5deda56a87047e4348a45920fa48c1bd to your computer and use it in GitHub Desktop.
having trouble with this gulp
var gulp = require('gulp');
var plumber = require('gulp-plumber');
var rename = require('gulp-rename');
var autoPrefixer = require('gulp-autoprefixer');
//if node version is lower than v.0.1.2
//require('es6-promise').polyfill();
var cssComb = require('gulp-csscomb');
var cmq = require('gulp-merge-media-queries');
var cleanCss = require('gulp-clean-css');
var browserify = require('gulp-browserify');
var uglify = require('gulp-uglify');
var browserSync = require('browser-sync').create();
var reload = browserSync.reload
gulp.task('sass',function(){
gulp.src(['./dev/styles/**/*.scss','./dev/styles/**/*.sass'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(autoPrefixer())
.pipe(cssComb())
.pipe(cmq({log:true}))
.pipe(gulp.dest('build/styles'))
.pipe(rename({
suffix: '.min'
}))
.pipe(cleanCss())
.pipe(sourcemaps.write())
.pipe(gulp.dest('build/styles'))
.pipe(reload({stream:true}))
});
gulp.task('css',function(){
gulp.src(['./dev/styles/**/*.css'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(autoPrefixer())
.pipe(cssComb())
.pipe(cmq({log:true}))
.pipe(gulp.dest('./build/styles'))
.pipe(rename({
suffix: '.min'
}))
.pipe(cleanCss())
.pipe(gulp.dest('./build/styles'))
.pipe(reload())
});
gulp.task('scripts',function(){
gulp.src(['./dev/scripts/**/*.js'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(browserify())
.pipe(gulp.dest('./build/scripts'))
.pipe(rename({
suffix: '.min'
}))
.pipe(uglify())
.pipe(gulp.dest('./build/scripts'))
.pipe(reload())
});
gulp.task('templates',function(){
gulp.src(['./dev/hypermedia/**/*.html'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(gulp.dest('./build/hypermedia/'))
.pipe(reload())
});
gulp.task('html',function(){
gulp.src(['./**/*.html'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(gulp.dest('./build/'))
.pipe(reload())
});
gulp.task('default', function () {
browserSync.init({
server: "./build"
});
gulp.watch('./dev/scripts/**/*.js',['scripts']);
gulp.watch('./dev/styles/**/*.css', ['css']);
gulp.watch(['./dev/styles/**/*.scss','./dev/styles/**/*.sass'],['sass']);
gulp.watch('./hypermedia/**/*.html', ['templates']);
gulp.watch('./**/*.html', ['html']);
});
var gulp = require('gulp');
var plumber = require('gulp-plumber');
var rename = require('gulp-rename');
var sourcemaps = require('gulp-sourcemaps');
var sass = require('gulp-sass');
var autoPrefixer = require('gulp-autoprefixer');
//if node version is lower than v.0.1.2
//require('es6-promise').polyfill();
var cssComb = require('gulp-csscomb');
var cmq = require('gulp-merge-media-queries');
var cleanCss = require('gulp-clean-css');
var browserify = require('gulp-browserify');
var uglify = require('gulp-uglify');
var browserSync = require('browser-sync').create();
var reload = browserSync.reload
var clean = require('gulp-clean');
var runSequence = require('run-sequence');
gulp.task('sass', function () {
return gulp.src(['dev/styles/**/*.scss', 'dev/styles/**/*.sass'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(sourcemaps.init())
.pipe(sass())
.pipe(autoPrefixer())
.pipe(cssComb())
.pipe(cmq({ log: true }))
.pipe(gulp.dest('build/styles'))
.pipe(rename({
suffix: '.min'
}))
.pipe(cleanCss())
.pipe(sourcemaps.write())
.pipe(gulp.dest('build/styles'))
.pipe(reload({ stream: true }))
});
gulp.task('css', function () {
return gulp.src(['dev/styles/**/*.css'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(autoPrefixer())
.pipe(cssComb())
.pipe(cmq({ log: true }))
.pipe(gulp.dest('build/styles'))
.pipe(rename({
suffix: '.min'
}))
.pipe(cleanCss())
.pipe(gulp.dest('build/styles'))
.pipe(reload({ stream: true }))
});
gulp.task('scripts', function () {
return gulp.src(['dev/scripts/**/*.js'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(browserify())
.pipe(gulp.dest('build/scripts'))
.pipe(rename({
suffix: '.min'
}))
.pipe(uglify())
.pipe(gulp.dest('build/scripts'))
.pipe(reload({ stream: true }))
});
gulp.task('templates', function () {
return gulp.src(['dev/hypermedia/**/*.html'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(gulp.dest('build/hypermedia/'))
.pipe(reload({ stream: true }))
});
gulp.task('root', function () {
return gulp.src(['dev/**/*.html', 'dev/**/*.xml', 'dev/**/*.png', 'dev/**/*.ico'])
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(gulp.dest('build/'))
.pipe(reload({ stream: true }))
});
gulp.task('clean', function () {
return gulp.src('build/*', { read: false })
.pipe(clean())
})
gulp.task('watch', function() {
gulp.watch('dev/scripts/**/*.js', ['scripts']);
gulp.watch('dev/styles/**/*.css', ['css']);
gulp.watch(['dev/styles/**/*.scss', 'dev/styles/**/*.sass'], ['sass']);
gulp.watch('hypermedia/**/*.html', ['templates']);
gulp.watch(['dev/**/*.html', 'dev/**/*.xml', 'dev/**/*.png', 'dev/**/*.ico'], ['root']);
});
gulp.task('serve', function() {
browserSync.init({ server: './build/' });
});
gulp.task('default', function(done) {
runSequence('clean', ['root', 'templates', 'css', 'sass', 'scripts'], 'watch', 'serve', done);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment