Skip to content

Instantly share code, notes, and snippets.

@mertkahyaoglu
Created March 30, 2015 22:12
Show Gist options
  • Save mertkahyaoglu/4c3626f095c663ff801d to your computer and use it in GitHub Desktop.
Save mertkahyaoglu/4c3626f095c663ff801d to your computer and use it in GitHub Desktop.
Gulpfile for React Webapp
var gulp = require('gulp'),
browserify = require('browserify'),
del = require('del'),
reactify = require('reactify'),
source = require('vinyl-source-stream'),
uglify = require('gulp-uglify'),
connect = require('gulp-connect'),
streamify = require('gulp-streamify'),
cssmin = require('gulp-minify-css'),
rename = require('gulp-rename');
var paths = {
css:['./css/*.css'],
js: ['./js/app/*.js'],
app_js: ['./js/app/app.js']
};
gulp.task('clean', function(done) {
del(['js/build/*.js'], done);
});
gulp.task('js', ['clean'], function() {
browserify(paths.app_js)
.transform(reactify)
.bundle()
.pipe(source('bundle.js'))
.pipe(streamify(uglify()))
.pipe(gulp.dest('./js/build'));
});
gulp.task('css', function () {
gulp.src('./css/app.css')
.pipe(cssmin())
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest('./css'))
.pipe(connect.reload());
});
gulp.task('html', function () {
gulp.src('./index.html')
.pipe(connect.reload());
});
gulp.task('connect', function() {
connect.server({
port: 3000,
livereload: true
});
});
gulp.task('watch', function() {
gulp.watch(['./index.html'], ['html']);
gulp.watch(paths.css, ['css']);
gulp.watch(paths.js, ['js']);
});
gulp.task('default', ['css', 'js', 'connect', 'watch']);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment