gulpfile.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. var gulp = require('gulp'),
  2. concat = require('gulp-concat'),
  3. uglify = require('gulp-uglify'),
  4. rename = require('gulp-rename'),
  5. sass = require('gulp-ruby-sass'),
  6. autoprefixer = require('gulp-autoprefixer'),
  7. browserSync = require('browser-sync').create();
  8. var DEST = 'build/';
  9. gulp.task('scripts', function() {
  10. return gulp.src('src/js/*.js')
  11. .pipe(concat('custom.js'))
  12. .pipe(gulp.dest(DEST+'/js'))
  13. .pipe(rename({suffix: '.min'}))
  14. .pipe(uglify())
  15. .pipe(gulp.dest(DEST+'/js'))
  16. .pipe(browserSync.stream());
  17. });
  18. // TODO: Maybe we can simplify how sass compile the minify and unminify version
  19. var compileSASS = function (filename, options) {
  20. return sass('src/scss/*.scss', options)
  21. .pipe(autoprefixer('last 2 versions', '> 5%'))
  22. .pipe(concat(filename))
  23. .pipe(gulp.dest(DEST+'/css'))
  24. .pipe(browserSync.stream());
  25. };
  26. gulp.task('sass', function() {
  27. return compileSASS('custom.css', {});
  28. });
  29. gulp.task('sass-minify', function() {
  30. return compileSASS('custom.min.css', {style: 'compressed'});
  31. });
  32. gulp.task('browser-sync', function() {
  33. browserSync.init({
  34. server: {
  35. baseDir: './'
  36. },
  37. startPath: './production/index.html'
  38. });
  39. });
  40. gulp.task('watch', function() {
  41. // Watch .html files
  42. gulp.watch('production/*.html', browserSync.reload);
  43. // Watch .js files
  44. gulp.watch('src/js/*.js', ['scripts']);
  45. // Watch .scss files
  46. gulp.watch('src/scss/*.scss', ['sass', 'sass-minify']);
  47. });
  48. // Default Task
  49. gulp.task('default', ['browser-sync', 'watch']);