willpracht
1/13/2015 - 5:05 PM

gulpfile.js

var gulp = require('gulp'),
	gutil = require('gulp-util'),
	clean = require('gulp-clean'),
	uglify = require('gulp-uglify'),
	minifyCSS = require('gulp-minify-css'),
	sourcemaps = require('gulp-sourcemaps'),
	wrap = require('gulp-wrap-exports'),
	addsrc = require('gulp-add-src'),
	concat = require('gulp-concat');

gulp.task('default', function() {
  gulp.start( 'scripts', 'vendor', 'styles');
});

gulp.task('clean', function () {  
  return gulp.src('./frontend/dist', {read: false})
    .pipe(clean());
});

gulp.task('scripts', function() {
	return gulp.src([
		'frontend/js/**/*.js', 
		'frontend/js/*.js'
		])
		.pipe(sourcemaps.init())
		.pipe(concat('main.js'))
		.pipe(uglify())
		.pipe(sourcemaps.write())
		.pipe(gulp.dest('./frontend/dist/scripts'))
		.on('error', gutil.log);
});

gulp.task('vendor', function() {
	 
	return gulp.src('frontend/js/lib/jquery/jquery.js')
	.pipe(wrap({name: '$'}))
	.pipe(addsrc('frontend/js/lib/jquery/jquery-ui.min.js'))
	.pipe(addsrc('frontend/js/lib/underscore/underscore.js'))
	.pipe(wrap({ name: '_' }))
	.pipe(addsrc('frontend/js/lib/backbone/backbone.js'))
	.pipe(wrap({ name: 'Backbone' }))
	.pipe(addsrc([
		'frontend/js/lib/backbone/backbone.iobind.js',
        'frontend/js/lib/backbone/backbone.iosync.js',
        'frontend/js/lib/bootstrap/bootstrap.js',
        'frontend/js/lib/bootstrap/bootstrap-popover.js',
        'frontend/js/lib/scroll/scroll.js',
        'frontend/js/lib/jquery/plugins.js',
        'frontend/js/lib/chart/chart.js',
        'frontend/js/lib/chart/canvasjs.js',
        'frontend/js/lib/jquery/select.js',
        'frontend/js/lib/date/moment.js',
        'frontend/js/lib/date/moment-range.js',
        'frontend/js/lib/number/numeral.js',
        'frontend/js/lib/faye/faye.js',
        'frontend/js/lib/jquery/jquery.timepicker.min.js',
        'frontend/js/lib/jquery/jquery.charCount.js',
        'frontend/js/lib/jquery/idle-timer.min.js'
	]))
	.pipe(sourcemaps.init())
	.pipe(concat('vendor.js'))
	.pipe(uglify())
	.pipe(sourcemaps.write())
	.pipe(gulp.dest('./frontend/dist/scripts'))
	.on('error', gutil.log);
});

gulp.task('styles', function() {
	return gulp.src('frontend/css/*.css')
		.pipe(concat('styles.css'))
		.pipe(minifyCSS())
		.pipe(gulp.dest('./frontend/dist/styles'))
		.on('error', gutil.log);
});