gulpfile.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. var gulp = require("gulp");
  2. var uglify = require("gulp-uglify");
  3. var rename = require("gulp-rename");
  4. var reactify = require("reactify");
  5. var browserify = require("browserify");
  6. var source = require("vinyl-source-stream");
  7. var buffer = require("vinyl-buffer");
  8. var debug = require("gulp-debug");
  9. var config = {
  10. src: './src',
  11. dest: './build'
  12. }
  13. /**** gulp tasks ***************************************************/
  14. gulp.task('global', function() {
  15. var entry = config.src + '/javascript/global.js';
  16. var dest = config.dest;
  17. var outputName = 'global.js';
  18. var files = [
  19. 'jquery',
  20. {file: 'backbone/node_modules/underscore', expose: 'underscore'}
  21. ];
  22. var b = browserify(entry)
  23. .require(files);
  24. return b.bundle()
  25. .pipe(source(outputName))
  26. .pipe(gulp.dest(dest));
  27. });
  28. gulp.task('app', function() {
  29. var entry = config.src + '/javascript/app.js';
  30. var dest = config.dest;
  31. var outputName = 'app.js';
  32. var modules = ['jquery', 'underscore'];
  33. var b = browserify(entry)
  34. .external(modules)
  35. .transform(reactify);
  36. return b.bundle()
  37. .pipe(source(outputName))
  38. .pipe(gulp.dest(dest));
  39. });
  40. gulp.task('htdocs', function() {
  41. var src = config.src + '/htdocs/**.html';
  42. var dest = config.dest;
  43. return gulp.src(src)
  44. //.pipe(debug({title: 'unicorn:'}))
  45. .pipe(gulp.dest(dest));
  46. });
  47. gulp.task('css', function() {
  48. var src = config.src + '/css/**';
  49. var dest = config.dest + '/css';
  50. return gulp.src(src)
  51. //.pipe(debug({title: 'unicorn:'}))
  52. .pipe(gulp.dest(dest));
  53. });
  54. gulp.task('images', function() {
  55. var src = config.src + '/images/**';
  56. var dest = config.dest + '/images';
  57. return gulp.src(src)
  58. .pipe(debug({title: 'unicorn:'}))
  59. .pipe(gulp.dest(dest));
  60. });
  61. /**** gulp watch ***************************************************/
  62. gulp.task('watch', function() {
  63. gulp.watch( config.src + "/javascript/app.js", [ 'app' ]);
  64. gulp.watch( config.src + "/htdocs/**.html", [ 'htdocs' ]);
  65. gulp.watch( config.src + "/images/**", [ 'images' ]);
  66. gulp.watch( config.src + "/css/**", [ 'css' ]);
  67. });
  68. /***** gulp main tasks *********************************************/
  69. gulp.task('build', ['images', 'css', 'htdocs', 'app']);
  70. gulp.task('default', ['global', 'build']);