gulpfile.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. var gulp = require("gulp");
  2. var concat = require("gulp-concat");
  3. var rename = require("gulp-rename");
  4. var uglify = require("gulp-uglify");
  5. var reactify = require("reactify");
  6. var browserify = require("browserify");
  7. var source = require("vinyl-source-stream");
  8. var buffer = require("vinyl-buffer");
  9. var literalify = require("literalify");
  10. var config = {
  11. srcPath: './js/src/',
  12. dstPath: './js/build/',
  13. minify: false
  14. };
  15. /**** gulp tasks ***************************************************/
  16. gulp.task('vendor', function () {
  17. var bundler = browserify(config.srcPath + 'vendor.js');
  18. bundler.require('./js/react.js', {expose: 'react'});
  19. bundler.require('./js/bootstrap3.min.js', {expose: 'bootstrap'});
  20. //bundler.require('./js/jquery.js', {expose: 'jQuery'});
  21. return bundler.bundle()
  22. .pipe(source('vendor.js'))
  23. .pipe(gulp.dest(config.dstPath));
  24. });
  25. /*
  26. *gulp.task('vendor', function () {
  27. * gulp.src([
  28. * './js/jquery.js',
  29. * './js/react.js',
  30. * './js/bootstrap3.min.js'
  31. * ])
  32. * .pipe(concat('vendor.js'))
  33. * .pipe(gulp.dest(config.dstPath));
  34. *});
  35. */
  36. gulp.task('config', function() {
  37. //var bundler = browserify(config.srcPath + 'config.js');
  38. var bundler = browserify({ basedir: config.srcPath,
  39. extensions: ['.js', '.jsx', '.json'],
  40. debug: false});
  41. bundler.transform(reactify);
  42. //bundler.require('./server', {expose: 'server'});
  43. bundler.require('./config', {expose: 'appConfig'});
  44. bundler.exclude('react');
  45. if (config.minify)
  46. return bundler.bundle()
  47. .pipe(source('config.js'))
  48. .pipe(buffer())
  49. .pipe(uglify())
  50. .pipe(rename({suffix: '.min'}))
  51. .pipe(gulp.dest(config.dstPath))
  52. else
  53. return bundler.bundle()
  54. .pipe(source('config.js'))
  55. .pipe(gulp.dest(config.dstPath))
  56. });
  57. /**** gulp watch ***************************************************/
  58. gulp.task('watch', function() {
  59. /*
  60. *gulp.watch(config.srcPath + '/*.html', ['htmls']);
  61. *gulp.watch(config.srcPath + '/css/*.css', ['styles']);
  62. *gulp.watch(config.srcPath + '/images/*', ['images']);
  63. *gulp.watch(config.appjs, ['browserify']);
  64. */
  65. });
  66. /***** gulp main tasks *********************************************/
  67. gulp.task('build', ['config']);
  68. gulp.task('default', ['vendor', 'build']);