gulpfile.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. 'backbone',
  21. 'react',
  22. {file: 'backbone/node_modules/underscore', expose: 'underscore'}
  23. ];
  24. var b = browserify(entry)
  25. .require(files);
  26. return b.bundle()
  27. .pipe(source(outputName))
  28. .pipe(gulp.dest(dest));
  29. });
  30. gulp.task('app', function() {
  31. var entry = config.src + '/javascript/app.js';
  32. var dest = config.dest;
  33. var outputName = 'app.js';
  34. var modules = ['jquery', 'backbone', 'underscore', 'react'];
  35. var b = browserify(entry)
  36. .external(modules)
  37. .transform(reactify);
  38. return b.bundle()
  39. .pipe(source(outputName))
  40. .pipe(gulp.dest(dest));
  41. });
  42. gulp.task('htdocs', function() {
  43. var src = config.src + '/htdocs/**.html';
  44. var dest = config.dest;
  45. return gulp.src(src)
  46. //.pipe(debug({title: 'unicorn:'}))
  47. .pipe(gulp.dest(dest));
  48. });
  49. gulp.task('css', function() {
  50. var src = config.src + '/css/**';
  51. var dest = config.dest + '/css';
  52. return gulp.src(src)
  53. //.pipe(debug({title: 'unicorn:'}))
  54. .pipe(gulp.dest(dest));
  55. });
  56. gulp.task('images', function() {
  57. var src = config.src + '/images/**';
  58. var dest = config.dest + '/images';
  59. return gulp.src(src)
  60. // .pipe(debug({title: 'unicorn:'}))
  61. .pipe(gulp.dest(dest));
  62. });
  63. gulp.task('vendor', function() {
  64. var src = ['./node_modules/bootstrap/dist/css/bootstrap.css'];
  65. var dest = config.dest + '/vendor';
  66. return gulp.src(src)
  67. // .pipe(debug({title: 'unicorn:'}))
  68. .pipe(gulp.dest(dest))
  69. });
  70. /**** gulp watch ***************************************************/
  71. gulp.task('watch', function() {
  72. gulp.watch( './gulpfile.js', ['build']);
  73. gulp.watch( config.src + "/javascript/app.js", [ 'app' ]);
  74. gulp.watch( config.src + "/htdocs/**.html", [ 'htdocs' ]);
  75. gulp.watch( config.src + "/images/**", [ 'images' ]);
  76. gulp.watch( config.src + "/css/**", [ 'css' ]);
  77. });
  78. /***** gulp main tasks *********************************************/
  79. gulp.task('build', ['global', 'images', 'css', 'htdocs', 'app']);
  80. gulp.task('default', ['vendor', 'build']);