Skip to content

Instantly share code, notes, and snippets.

@nevadajames
Last active June 1, 2017 23:19
Show Gist options
  • Select an option

  • Save nevadajames/f0610404f292b4df0d389efa15360675 to your computer and use it in GitHub Desktop.

Select an option

Save nevadajames/f0610404f292b4df0d389efa15360675 to your computer and use it in GitHub Desktop.
Gulpfile for some useful functions
var gulp= require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
var cssnano = require('gulp-cssnano');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var imagemin = require('gulp-imagemin');
//Compìle Css from Sass and live reload on save
gulp.task('sass', function(){
return gulp.src('app/scss/**/*.scss')
.pipe(sass()) //using gulp-sass
.pipe(gulp.dest('app/css'))
.pipe(browserSync.reload({
stream: true
}))
});
gulp.task('browserSync', function() {
browserSync.init({
server: {
baseDir: 'app'
},
})
});
gulp.task('watch', ['browserSync', 'sass'], function(){
gulp.watch('app/scss/**/*.scss', ['sass']);
// Other watchers
gulp.watch('app/*.html', browserSync.reload);
gulp.watch('app/js/**/*.js', browserSync.reload);
});
// Autoprefix, minify and rename CSS
gulp.task('cssnano', function() {
return gulp.src('app/css/**/*.css')
.pipe(autoprefixer({
browsers: ['last 4 versions'],
cascade: false
}))
.pipe(cssnano())
.pipe(rename({suffix:'.min'}))
.pipe(gulp.dest('./dist/css'))
});
// Minify and concatenate .js files
var jsFiles = 'app/js/**/*.js',
jsDest = './dist/scripts';
gulp.task('scripts', function() {
return gulp.src(jsFiles)
.pipe(concat('scripts.js'))
.pipe(gulp.dest(jsDest))
.pipe(rename('scripts.min.js'))
.pipe(uglify())
.pipe(gulp.dest(jsDest));
});
//optimize images
gulp.task('jpgs', function() {
return gulp.src('app/img/*.jpg')
.pipe(imagemin({ progressive: true }))
.pipe(gulp.dest('./dist/img'));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment