gulpfile.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /*global require:true, console:true */
  2. var gulp = require('gulp');
  3. var nodemon = require('gulp-nodemon');
  4. var uglify = require('gulp-uglify');
  5. var minifyHTML = require('gulp-minify-html');
  6. var minifycss = require('gulp-minify-css');
  7. var concat = require('gulp-concat');
  8. var del = require('del');
  9. gulp.task('test', function(){
  10. });
  11. var cleanTask = function () {
  12. return del([
  13. 'app/**/*',
  14. '!app/img/',
  15. '!app/css/',
  16. '!app/fonts/',
  17. '!app/js/',
  18. ]);
  19. console.log('CLEAN: Clean Complete');
  20. };
  21. gulp.task('clean', function() {
  22. cleanTask();
  23. });
  24. var buildTask = function() {
  25. gulp.src('./src/app.js')
  26. .pipe(gulp.dest('./app'));
  27. gulp.src('./src/index.html')
  28. .pipe(minifyHTML())
  29. .pipe(gulp.dest('./app'));
  30. gulp.src('./src/img/*')
  31. .pipe(gulp.dest('./app/img'));
  32. gulp.src('./src/fonts/*')
  33. .pipe(gulp.dest('./app/fonts'));
  34. gulp.src(['./src/css/bootstrap-v3.3.6.css', './src/css/main.css'])
  35. .pipe(concat('style.min.css'))
  36. .pipe(minifycss())
  37. .pipe(gulp.dest('./app/css'));
  38. gulp.src(['./src/js/jquery-v2.1.4.js', './src/js/bootstrap-v3.3.6.js', './src/js/bootstrap-progress-v0.9.0.js', './src/js/underscore-v1.8.3.js', './src/js/handlebars-v4.0.5.js'])
  39. .pipe(concat('vendor.min.js'))
  40. .pipe(uglify())
  41. .pipe(gulp.dest('./app/js'));
  42. gulp.src(['./src/js/webrtc-adapter.js', './src/js/webrtc-audio.js', './src/js/webrtc-video.js'])
  43. .pipe(concat('webrtc.min.js'))
  44. .pipe(uglify())
  45. .pipe(gulp.dest('./app/js'));
  46. gulp.src('./src/js/templates/*')
  47. .pipe(gulp.dest('./app/js/templates'));
  48. gulp.src(['.src/js/amplitude-v2.2.0.js', './src/js/chat.js', './src/js/radio.js'])
  49. .pipe(concat('radio.min.js'))
  50. //.pipe(uglify())
  51. .pipe(gulp.dest('./app/js'));
  52. console.log('BUILD: Build Complete');
  53. };
  54. gulp.task('build', function() {
  55. buildTask();
  56. });
  57. var watchTask = function() {
  58. gulp.src('./src/app.js')
  59. .pipe(gulp.dest('./app'));
  60. gulp.src('./src/index.html')
  61. .pipe(minifyHTML())
  62. .pipe(gulp.dest('./app'));
  63. gulp.src(['./src/css/bootstrap-v3.3.6.css', './src/css/main.css'])
  64. .pipe(concat('style.min.css'))
  65. .pipe(minifycss())
  66. .pipe(gulp.dest('./app/css'));
  67. gulp.src('./src/js/templates/*')
  68. .pipe(gulp.dest('./app/js/templates'));
  69. gulp.src(['.src/js/amplitude-v2.2.0.js', './src/js/chat.js', './src/js/radio.js'])
  70. .pipe(concat('radio.min.js'))
  71. //.pipe(uglify())
  72. .pipe(gulp.dest('./app/js'));
  73. console.log('WATCH: Watch Complete');
  74. };
  75. gulp.task('watch', function() {
  76. watchTask();
  77. });
  78. var nodemonTask = function() {
  79. nodemon({
  80. tasks: ['watch'],
  81. script: 'app.js',
  82. verbose: true,
  83. env: { 'NODE_ENV': 'development' },
  84. watch: './src/',
  85. ext: 'css js html'
  86. });
  87. };
  88. gulp.task('run', function () {
  89. nodemonTask();
  90. });