gulpfile.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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/@fullcalendar/core/main.js')
  16. .pipe(rename('fullcalendar.js'))
  17. .pipe(gulp.dest('./js/', { overwrite:true } ));
  18. gulp.src('./node_modules/@fullcalendar/core/main.css')
  19. .pipe(rename('fullcalendar.css'))
  20. .pipe(gulp.dest('./css/', { overwrite:true } ));
  21. gulp.src('./node_modules/@fullcalendar/google-calendar/main.js')
  22. .pipe(rename('fullcalendar-google.js'))
  23. .pipe(gulp.dest('./js/', { overwrite:true } ));
  24. gulp.src('./node_modules/@fullcalendar/daygrid/main.js')
  25. .pipe(rename('./js/fullcalendar-daygrid.js'))
  26. .pipe(gulp.dest('./js/', { overwrite:true } ));
  27. gulp.src('./node_modules/@fullcalendar/daygrid/main.css')
  28. .pipe(rename('fullcalendar-daygrid.css'))
  29. .pipe(gulp.dest('./css/', { overwrite:true } ));
  30. gulp.src('./node_modules/@fullcalendar/timegrid/main.js')
  31. .pipe(rename('fullcalendar-timegrid.js'))
  32. .pipe(gulp.dest('./js/', { overwrite:true } ));
  33. gulp.src('./node_modules/@fullcalendar/timegrid/main.css')
  34. .pipe(rename('fullcalendar-timegrid.css'))
  35. .pipe(gulp.dest('./css/', { overwrite:true } ));
  36. gulp.src('./node_modules/moment/min/moment.min.js')
  37. .pipe(gulp.dest('./js/'));
  38. gulp.src('./node_modules/waypoints/lib/noframework.waypoints.js')
  39. .pipe(rename('waypoints.js'))
  40. .pipe(gulp.dest('./js/'));
  41. gulp.src('./node_modules/waypoints/lib/shortcuts/inview.js')
  42. .pipe(rename('waypoints-inview.js'))
  43. .pipe(gulp.dest('./js/'));
  44. console.log("files 📄 from npm pkgs ");
  45. });
  46. gulp.task('build', async function() {
  47. gulp.src('index.html')
  48. .pipe(useref())
  49. .pipe(gulpif('*.js', uglify()))
  50. .pipe(gulpif('*.css', cleanCSS({level: {1: {specialComments: 0}}})))
  51. .pipe(gulp.dest('./app/'));
  52. console.log("Assets built 🔧 for app/ ");
  53. });
  54. function mixin() {
  55. return gulp.src('./css/_scss/**/*.scss')
  56. .pipe(sass().on('error',sass.logError))
  57. .pipe(gulp.dest('./css/'))
  58. .pipe(browserSync.stream());
  59. }
  60. function run() {
  61. browserSync.init({
  62. server: {
  63. baseDir: "./",
  64. index: "/index.html"
  65. }
  66. });
  67. gulp.watch('./css/_scss/*.scss', mixin);
  68. gulp.watch('./css/**/*.css').on('change', browserSync.reload);
  69. gulp.watch('./*.html').on('change',browserSync.reload);
  70. gulp.watch('./js/**/*.js').on('change', browserSync.reload);
  71. }
  72. exports.mixin = mixin;
  73. exports.run = run;