gulpfile.js 3.1 KB

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