| 
          var gulp = require('gulp'); | 
        
        
           | 
          var source = require('vinyl-source-stream'); | 
        
        
           | 
          var browserify = require('browserify'); | 
        
        
           | 
          var reactify = require('reactify'); | 
        
        
           | 
          var sass = require('gulp-sass'); | 
        
        
           | 
          var webserver = require('gulp-webserver'); | 
        
        
           | 
          
 | 
        
        
           | 
          var PATH = { | 
        
        
           | 
            OUTPUT_DEST: 'dist', | 
        
        
           | 
            JS: { | 
        
        
           | 
              ENTRY: 'app/js/app.jsx', | 
        
        
           | 
              APLICATION: 'app/js/**/*', | 
        
        
           | 
              OUTPUT_NAME: 'bundle.js' | 
        
        
           | 
            }, | 
        
        
           | 
            HTML: { | 
        
        
           | 
              ENTRY: 'app/index.html' | 
        
        
           | 
            }, | 
        
        
           | 
            CSS: { | 
        
        
           | 
              ENTRY: 'app/css/main.scss', | 
        
        
           | 
              APLICATION: 'app/css/*/**.scss', | 
        
        
           | 
              OUTPUT_NAME: 'main.css' | 
        
        
           | 
            } | 
        
        
           | 
          } | 
        
        
           | 
          
 | 
        
        
           | 
          gulp.task('build:js', function() { | 
        
        
           | 
            return browserify({ | 
        
        
           | 
              entries: [PATH.JS.ENTRY] | 
        
        
           | 
            }).bundle() | 
        
        
           | 
              .pipe(source(PATH.JS.OUTPUT_NAME)) | 
        
        
           | 
              .pipe(gulp.dest(PATH.OUTPUT_DEST)); | 
        
        
           | 
          }); | 
        
        
           | 
          
 | 
        
        
           | 
          gulp.task('build:html', function() { | 
        
        
           | 
            gulp.src(PATH.HTML.ENTRY) | 
        
        
           | 
              .pipe(gulp.dest(PATH.OUTPUT_DEST)); | 
        
        
           | 
          }); | 
        
        
           | 
          
 | 
        
        
           | 
          gulp.task('build:css', function() { | 
        
        
           | 
            gulp.src(PATH.CSS.ENTRY) | 
        
        
           | 
              .pipe(sass({outputStyle: 'compressed'})) | 
        
        
           | 
              .pipe(gulp.dest(PATH.OUTPUT_DEST)); | 
        
        
           | 
          }); | 
        
        
           | 
          
 | 
        
        
           | 
          gulp.task('webserver', function() { | 
        
        
           | 
            gulp.src(PATH.OUTPUT_DEST) | 
        
        
           | 
              .pipe(webserver({ | 
        
        
           | 
                open: true, | 
        
        
           | 
                livereload: true | 
        
        
           | 
              })); | 
        
        
           | 
          }); | 
        
        
           | 
          
 | 
        
        
           | 
          gulp.task('build', ['build:html', 'build:css', 'build:js']); | 
        
        
           | 
          
 | 
        
        
           | 
          gulp.task('watch', function() { | 
        
        
           | 
            gulp.watch(PATH.JS.APLICATION, ['build:js']); | 
        
        
           | 
            gulp.watch(PATH.CSS.APLICATION, ['build:css']); | 
        
        
           | 
            gulp.watch(PATH.HTML.ENTRY, ['build:html']); | 
        
        
           | 
          }); | 
        
        
           | 
          
 | 
        
        
           | 
          gulp.task('deploy', ['build']); | 
        
        
           | 
          
 | 
        
        
           | 
          gulp.task('default', ['build', 'watch', 'webserver']); |