gulpfile.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. const gulp = require('gulp'),
  2. concat = require('gulp-concat'),
  3. cleanCSS = require('gulp-clean-css');
  4. purgecss = require('gulp-purgecss'),
  5. sass = require('gulp-sass')(require('sass')),
  6. browserSync = require('browser-sync').create();
  7. function copy(cb) {
  8. gulp.src([
  9. './node_modules/bootstrap/dist/js/bootstrap.bundle.min.js',
  10. './node_modules/swiper/swiper-bundle.min.js',
  11. ])
  12. .pipe(gulp.dest('./_src/js/'));
  13. gulp.src([
  14. './node_modules/bootstrap/dist/css/bootstrap.min.css',
  15. './node_modules/font-awesome/css/font-awesome.min.css',
  16. './node_modules/swiper/swiper.min.css',
  17. ])
  18. .pipe(gulp.dest('./_src/css/'));
  19. console.log("Copy assets ๐Ÿ“ฆ ");
  20. cb();
  21. }
  22. function build(cb) {
  23. gulp.src([
  24. './css/fontawesome-all.min.css',
  25. './css/bootstrap.min.css',
  26. './css/swiper.css',
  27. './css/styles.css'
  28. ])
  29. .pipe(concat('site.css'))
  30. .pipe(gulp.dest('./css/'));
  31. gulp.src([
  32. './js/bootstrap.min.js',
  33. './js/swiper.min.js',
  34. './js/scripts.js'
  35. ])
  36. .pipe(concat('site.js'))
  37. .pipe(gulp.dest('./js/'));
  38. console.log("Assets built ๐Ÿ”ง ");
  39. cb();
  40. }
  41. function purge (cb) {
  42. gulp.src('./css/site.css')
  43. .pipe(purgecss({
  44. content: ['./index.html']
  45. }))
  46. .pipe(gulp.dest('./css/'));
  47. console.log("CSS purged ๐Ÿ› ");
  48. cb();
  49. }
  50. function clean (cb) {
  51. gulp.src('./css/site.css')
  52. .pipe(cleanCSS({level: {1: {specialComments: 0}}}))
  53. .pipe(gulp.dest('./css/'));
  54. console.log("CSS cleaned ๐Ÿงน ");
  55. cb();
  56. }
  57. function mixin() {
  58. return gulp.src('./css/*.scss')
  59. .pipe(sass().on('error',sass.logError))
  60. .pipe(gulp.dest('./css/'))
  61. .pipe(browserSync.stream());
  62. }
  63. function run() {
  64. browserSync.init({
  65. server: {
  66. baseDir: "./",
  67. index: "/index.html"
  68. }
  69. });
  70. function reload() {
  71. browserSync.reload();
  72. }
  73. gulp.watch('./css/*.scss', mixin);
  74. gulp.watch([
  75. './css/styles.css',
  76. './js/scripts.js'
  77. ]).on('change',gulp.series(build,purge, clean, reload));
  78. gulp.watch('./index.html').on('change',reload);
  79. console.log("๐Ÿ”ฅ Run");
  80. }
  81. exports.copy = copy;
  82. exports.build = build;
  83. exports.purge = purge;
  84. exports.clean = clean;
  85. exports.mixin = mixin;
  86. exports.run = run;