gulpfile.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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('font-awesome', function() {
  64. var src = './node_modules/font-awesome/**/*';
  65. var dest = config.dest + '/vendor';
  66. return gulp.src(src, {base: './node_modules'})
  67. // .pipe(debug())
  68. .pipe(gulp.dest(dest));
  69. });
  70. gulp.task('bootstrap', function() {
  71. var src = ['./node_modules/bootstrap/dist/css/bootstrap.css',
  72. './node_modules/bootstrap/dist/css/bootstrap.css.map'];
  73. var dest = config.dest + '/vendor';
  74. return gulp.src(src)
  75. // .pipe(debug({title: 'unicorn:'}))
  76. .pipe(gulp.dest(dest));
  77. });
  78. gulp.task('jstree', function() {
  79. var src = './node_modules/jstree/dist/themes/**/*';
  80. var dest = config.dest + '/vendor/jstree';
  81. return gulp.src(src, {base: './node_modules/jstree/dist'})
  82. .pipe(gulp.dest(dest));
  83. });
  84. /**** gulp watch ***************************************************/
  85. gulp.task('watch', function() {
  86. gulp.watch( './gulpfile.js', ['build']);
  87. gulp.watch( config.src + "/javascript/*.js", [ 'app' ]);
  88. gulp.watch( config.src + "/htdocs/**.html", [ 'htdocs' ]);
  89. gulp.watch( config.src + "/images/**", [ 'images' ]);
  90. gulp.watch( config.src + "/css/**", [ 'css' ]);
  91. });
  92. /***** gulp main tasks *********************************************/
  93. gulp.task('vendor', ['bootstrap', 'font-awesome', 'jstree']);
  94. gulp.task('build', ['global', 'images', 'css', 'htdocs', 'app']);
  95. gulp.task('default', ['vendor', 'build']);