Skip to content

Instantly share code, notes, and snippets.

@wkei
Last active September 16, 2017 03:38
Show Gist options
  • Save wkei/54e3fed08b3d3b96950fce4316d9b403 to your computer and use it in GitHub Desktop.
Save wkei/54e3fed08b3d3b96950fce4316d9b403 to your computer and use it in GitHub Desktop.
Base config for gulpfile #note
var gulp = require('gulp')
var sass = require('gulp-sass')
var concat = require('gulp-concat')
var uglify = require('gulp-uglify')
var cleanCss = require('gulp-clean-css')
var gutil = require('gulp-util')
var env = require('gulp-environments')
var htmlmin = require('gulp-htmlmin')
var connect = require('gulp-connect')
var pro = env.production
gulp.task('sass', function (){
return gulp.src('src/scss/app.scss')
.pipe(sass({outputStyle: pro() ? 'compressed' : 'expanded'}))
.pipe(gulp.dest('app/css'))
})
gulp.task('vendor-css', function () {
return gulp.src('src/vendor/css/*.css')
.pipe(concat('vendor.css'))
.pipe(pro() ? cleanCss() : gutil.noop())
.pipe(gulp.dest('app/css'))
})
gulp.task('vendor-js', function () {
return gulp.src('src/vendor/js/*.js')
.pipe(concat('vendor.js'))
.pipe(pro() ? uglify() : gutil.noop())
.pipe(gulp.dest('app/js'))
})
gulp.task('js', function () {
return gulp.src('src/js/*.js')
.pipe(concat('app.js'))
.pipe(pro() ? uglify() : gutil.noop())
.pipe(gulp.dest('app/js'))
})
gulp.task('html', function () {
return gulp.src('src/*.html')
.pipe(pro() ? htmlmin({collapseWhitespace: true}) : gutil.noop())
.pipe(gulp.dest('app'))
.pipe(connect.reload())
})
gulp.task('connect', function () {
if (pro()) return false
return connect.server({
root: 'app',
livereload: true
})
})
gulp.task('watch', function () {
if (pro()) return false
gulp.watch(['./src/*.html'], ['html'])
gulp.watch(['./src/js/*.js'], ['js'])
gulp.watch(['./src/vendor/*.js'], ['vendor-js'])
gulp.watch(['./src/scss/*.scss'], ['sass'])
gulp.watch(['./src/vendor/*.css'], ['vendor-css'])
})
gulp.task('default', ['connect', 'html', 'vendor-css', 'sass', 'vendor-js', 'js', 'watch'], function () {})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment