loitruong
2/9/2017 - 1:34 AM

gulpfile.js

var gulp = require('gulp')
	, uglify = require('gulp-uglify')
	, concat = require('gulp-concat')
	, sass = require('gulp-sass')
	, sourcemaps = require('gulp-sourcemaps')
	, source = require('vinyl-source-stream')
	, buffer = require('vinyl-buffer')
	,browserify = require("browserify")

var scripts = {
	process: [
		, './js/src/*.js'
	]
};

gulp.task('js', function() {
	return gulp.src(scripts.process)
		.pipe(concat('main.js'))
		.pipe(uglify())
		.pipe(gulp.dest('./js/'));
});

gulp.task('reactjs', function() {
  return browserify('./js/react/main.js')
    .transform("babelify", {presets: ["es2015", "react"]})
    .bundle()
    .pipe(source('main-react.js'))
    .pipe(buffer())
    .pipe(uglify())
    .pipe(gulp.dest("./js/"));
});

gulp.task('sass', function () {
  return gulp.src('./sass/style.scss')
   .pipe(sourcemaps.init())
   .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
   .pipe(sourcemaps.write('./'))
   .pipe(gulp.dest('./'));
});

gulp.task('watch', function() { 
	gulp.watch('./sass/**/*.scss', ['sass']);
	gulp.watch('./sass/*.scss', ['sass']);
	gulp.watch('./js/src/*.js', ['js']);
	gulp.watch('./js/react/**/*.js', ['reactjs']);
	gulp.watch('./js/react/*.js', ['reactjs']);

});

function nocrash(error) {
	console.log(error.toString());
	this.emit('end');
}

// default task

gulp.task('default', ['js', 'sass', 'reactjs', 'watch']);
{
  "name": "LoiTruong",
  "description": "WordPress theme developed by Loi Truong",
  "version": "1.0.0",
  "author": "Loi Truong <loitruong1989@gmail.com>",
  "homepage": "http://loitruong.us",
  "devDependencies": {
    "gulp": "^3.9.1",
    "gulp-uglify": "^1.5.3",
    "gulp-concat": "^2.6.0",
    "gulp-sass": "*",
    "gulp-sourcemaps" : "*",
    "babelify" : "*",
    "browserify" : "*",
    "glob" : "*",
    "vinyl-source-stream" : "*",
    "vinyl-buffer" : "*"
  }
}