gulpfile.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. var gulp = require('gulp');
  2. var autoprefixer = require('gulp-autoprefixer');
  3. var sass = require('gulp-sass');
  4. var gutil = require('gulp-util');
  5. var concat = require('gulp-concat');
  6. var coffee = require('gulp-coffee');
  7. var eco = require('gulp-eco');
  8. var rename = require('gulp-rename');
  9. var uglify = require('gulp-uglify');
  10. var merge = require('merge-stream');
  11. var plumber = require('gulp-plumber');
  12. gulp.task('css', function(){
  13. return gulp.src('chat.scss')
  14. .pipe(sass.sync().on('error', gutil.log))
  15. .pipe(autoprefixer({
  16. browsers: ['last 4 versions'],
  17. cascade: false
  18. }))
  19. .pipe(gulp.dest('./'));
  20. });
  21. gulp.task('js', function(){
  22. var templates = gulp.src('views/*.eco')
  23. .pipe(eco({namespace: 'zammadChatTemplates'}));
  24. var purify = gulp.src('purify.min.js');
  25. var js = gulp.src('chat.coffee')
  26. .pipe(plumber())
  27. .pipe(coffee({bare: true}).on('error', gutil.log));
  28. return merge(templates, js)
  29. .add(purify)
  30. .pipe(concat('chat.js'))
  31. .pipe(gulp.dest('./'))
  32. .pipe(uglify())
  33. .pipe(rename({ extname: '.min.js' }))
  34. .pipe(gulp.dest('./'));
  35. });
  36. gulp.task('no-jquery', function(){
  37. var templates = gulp.src('views/*.eco')
  38. .pipe(eco({namespace: 'zammadChatTemplates'}));
  39. var purify = gulp.src('purify.min.js');
  40. var js = gulp.src('chat-no-jquery.coffee')
  41. .pipe(plumber())
  42. .pipe(coffee({bare: true}).on('error', gutil.log));
  43. return merge(templates, js)
  44. .add(purify)
  45. .pipe(concat('chat-no-jquery.js'))
  46. .pipe(gulp.dest('./'))
  47. .pipe(uglify())
  48. .pipe(rename({ extname: '.min.js' }))
  49. .pipe(gulp.dest('./'));
  50. });
  51. gulp.task('default', function(){
  52. var cssWatcher = gulp.watch(['chat.scss'], ['css']);
  53. cssWatcher.on('change', function(event) {
  54. console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
  55. });
  56. var jsWatcher = gulp.watch(['chat.coffee', 'views/*.eco'], ['js']);
  57. jsWatcher.on('change', function(event) {
  58. console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
  59. });
  60. var js2Watcher = gulp.watch(['chat-no-jquery.coffee'], ['no-jquery']);
  61. js2Watcher.on('change', function(event) {
  62. console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
  63. });
  64. });