gulpfile.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. const gulp = require('gulp')
  2. const jshint = require('gulp-jshint')
  3. const uglify = require('gulp-uglify')
  4. const rename = require('gulp-rename')
  5. const sass = require('gulp-sass')
  6. const autoprefixer = require('gulp-autoprefixer')
  7. const minify = require('gulp-clean-css')
  8. const qunit = require('gulp-qunit')
  9. const zip = require('gulp-zip')
  10. const connect = require('gulp-connect')
  11. gulp.task('js', function () {
  12. return gulp.src(['./js/reveal.js']).pipe(uglify()).pipe(rename('reveal.min.js')).pipe(gulp.dest('./js'))
  13. })
  14. gulp.task('css-themes', function () {
  15. return gulp.src(['./css/theme/source/*.{sass,scss}']).pipe(sass()).pipe(gulp.dest('./css/theme'))
  16. })
  17. gulp.task('css-core', gulp.series(function () {
  18. return gulp.src(['css/reveal.scss']).pipe(sass()).pipe(autoprefixer()).pipe(gulp.dest('./css'))
  19. }, function () {
  20. return gulp.src(['css/reveal.css']).pipe(minify({
  21. compatibility: 'ie9'
  22. })).pipe(rename('reveal.min.css')).pipe(gulp.dest('./css'))
  23. }))
  24. gulp.task('css', gulp.parallel('css-themes', 'css-core'))
  25. gulp.task('test', gulp.parallel(function () {
  26. return gulp.src(['./js/reveal.js']).pipe(jshint()).pipe(jshint.reporter('default')).pipe(jshint.reporter('fail'));
  27. }, function () {
  28. return gulp.src(['./test/*.html']).pipe(qunit())
  29. }))
  30. gulp.task('default', gulp.series(gulp.parallel('js', 'css'), 'test'))
  31. gulp.task('package', gulp.series('default', function () {
  32. return gulp.src([
  33. './index.html',
  34. './css/**',
  35. './js/**',
  36. './lib/**',
  37. './images/**',
  38. './plugin/**',
  39. './**.md'
  40. ]).pipe(zip('reveal-js-presentation.zip')).pipe(gulp.dest('./'))
  41. }))
  42. gulp.task('serve', function () {
  43. connect.server({
  44. root: '.',
  45. livereload: true,
  46. open: true,
  47. useAvailablePort: true
  48. })
  49. gulp.watch(['js/reveal.js'], gulp.series('js'))
  50. })