gulpfile.js 3.2 KB

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