gulpfile.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. const gulp = require('gulp'),
  2. useref = require('gulp-useref'),
  3. gulpif = require('gulp-if'),
  4. uglify = require('gulp-uglify'),
  5. sass = require('gulp-sass'),
  6. cleanCSS = require('gulp-clean-css'),
  7. rename = require("gulp-rename"),
  8. concat = require("gulp-concat"),
  9. browserSync = require('browser-sync').create();
  10. gulp.task('copy', async function() {
  11. gulp.src('./node_modules/bootstrap/dist/js/bootstrap.js')
  12. .pipe(gulp.dest('./js/'));
  13. gulp.src('./node_modules/jquery/dist/jquery.min.js')
  14. .pipe(gulp.dest('./js/'));
  15. gulp.src('./node_modules/waypoints/lib/noframework.waypoints.js')
  16. .pipe(rename('waypoints.js'))
  17. .pipe(gulp.dest('./js/'));
  18. gulp.src('./node_modules/waypoints/lib/shortcuts/inview.js')
  19. .pipe(rename('waypoints-inview.js'))
  20. .pipe(gulp.dest('./js/'));
  21. console.log("files 📄 from npm pkgs ");
  22. });
  23. gulp.task('build', async function() {
  24. gulp.src('index.html')
  25. .pipe(useref())
  26. .pipe(gulpif('*.js', uglify()))
  27. .pipe(gulpif('*.css', cleanCSS({level: {1: {specialComments: 0}}})))
  28. .pipe(gulp.dest('./app/'));
  29. console.log("Assets built 🔧 for app/ ");
  30. });
  31. function mixin() {
  32. return gulp.src('./css/_scss/**/*.scss')
  33. .pipe(sass().on('error',sass.logError))
  34. .pipe(gulp.dest('./css/'))
  35. .pipe(browserSync.stream());
  36. }
  37. function run() {
  38. browserSync.init({
  39. server: {
  40. baseDir: "./",
  41. index: "/index.html"
  42. }
  43. });
  44. gulp.watch('./css/_scss/*.scss', mixin);
  45. gulp.watch('./css/**/*.css').on('change', browserSync.reload);
  46. gulp.watch('./*.html').on('change',browserSync.reload);
  47. gulp.watch('./js/**/*.js').on('change', browserSync.reload);
  48. }
  49. exports.mixin = mixin;
  50. exports.run = run;