gulpfile.js 2.8 KB

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