Skip to content

Instantly share code, notes, and snippets.

@mxgrn
Created March 3, 2014 08:51
Show Gist options
  • Select an option

  • Save mxgrn/9320957 to your computer and use it in GitHub Desktop.

Select an option

Save mxgrn/9320957 to your computer and use it in GitHub Desktop.
var gulp = require('gulp'),
gutil = require('gulp-util'),
sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
minifycss = require('gulp-minify-css'),
jshint = require('gulp-jshint'),
uglify = require('gulp-uglify'),
imagemin = require('gulp-imagemin'),
rename = require('gulp-rename'),
clean = require('gulp-clean'),
concat = require('gulp-concat'),
notify = require('gulp-notify'),
cache = require('gulp-cache'),
livereload = require('gulp-livereload'),
coffee = require('gulp-coffee'),
lr = require('tiny-lr'),
eco = require('gulp-eco'),
bourbon = require('node-bourbon'),
imagemin = require('gulp-imagemin'),
server = lr();
javascripts = [
'./bower_components/jquery/jquery.js',
'./bower_components/jquery.iframe-transport/jquery.iframe-transport.js',
'./bower_components/underscore/underscore.js',
'./bower_components/underscore.string/lib/underscore.string.js',
'./bower_components/moment/moment.js',
'./bower_components/moment-range/lib/moment-range.js',
'./bower_components/twix/bin/twix.js',
'./bower_components/backbone/backbone.js',
'./bower_components/backbone.syphon/lib/backbone.syphon.js',
'./bower_components/marionette/lib/backbone.marionette.js',
'./bower_components/supermodel/supermodel.js',
'./bower_components/spinjs/spin.js',
'./bower_components/jquery.spinjs/dist/jquery.spin.js',
'./bower_components/backbone-validation/dist/backbone-validation.js',
'./javascripts/vendor/*.js',
'./javascripts/vendor/jquery_fileupload/*.js',
'./vendor/JoB/dist/job.js',
'./vendor/leave_planner/dev/app/leavePlanner.js',
'./vendor/simple_form_js/dev/app/simple_form.js',
'./vendor/jquery.category_calendar/jquery.category_calendar.js',
'./vendor/bootstrap_daterangepicker/dist/daterangepicker.js'
]
coffeescriptIndex = [
"./javascripts/index.js.coffee"
]
coffeescripts = [
"./javascripts/app.js.coffee",
"./javascripts/index.js.coffee",
"./javascripts/helpers/*.coffee",
"./javascripts/lib/*.coffee",
"./javascripts/views/_base/*.coffee",
"./javascripts/views/templates/*.coffee",
"./javascripts/views/*.coffee",
"./javascripts/controllers/*.coffee",
"./javascripts/entities/_base/*.coffee",
"./javascripts/entities/**/*.coffee",
"./javascripts/components/**/*.coffee",
"./javascripts/config/**/*.coffee",
"./javascripts/apps/**/*.coffee",
'./javascripts/vendor/**/*.coffee'
]
templates = [
"./javascripts/**/*.eco"
]
scss = [
'./stylesheets/**/*.scss', './stylesheets/**/*.sass', './stylesheets/**/*.css'
]
var fonts = [
'./bower_components/font-awesome/fonts/**/*.*'
];
var imagesFiles = [
'./images/**/*.png',
'./images/**/*.jpg',
'./images/**/*.gif'
]
var paths = {
javascripts: javascripts,
coffeescriptIndex: coffeescriptIndex,
coffeescripts: coffeescripts,
templates: templates,
scss: scss,
fonts: fonts,
images: imagesFiles
};
gulp.task('javascripts', function() {
return gulp.src(paths.javascripts)
.pipe(concat('dependencies.js'))
.pipe(gulp.dest('./dist/'))
.pipe(notify({ message: 'Scripts task complete' }));
});
gulp.task('coffeescripts', function() {
gulp.src(paths.coffeescripts)
.pipe(concat('ourstuff.coffee'))
.pipe(coffee({bare: true}))
.pipe(gulp.dest('./dist/'))
.pipe(notify({ message: 'Scripts task complete' }));
gulp.src(paths.coffeescriptIndex)
.pipe(coffee({bare: true}))
.pipe(gulp.dest('./dist/'))
.pipe(notify({ message: 'Scripts task complete' }));
});
gulp.task('templates', function () {
return gulp.src(paths.templates)
.pipe(eco({basePath: 'frontend/javascripts'}))
.pipe(concat('templates.js'))
.pipe(gulp.dest('./dist'));
});
gulp.task('stylez', function() {
// @import '/../vendor/jquery.category_calendar/jquery.category_calendar.css';
// @import '/../vendor/leave_planner/dev/app/css/leave_planner.css';
// @import "/../vendor/bootstrap_daterangepicker/dist/daterangepicker.css";
gulp.src(paths.fonts, {base: './bower_components/font-awesome/fonts'})
.pipe(gulp.dest('./dist/fonts'));
return gulp.src('./stylesheets/index.scss')
.pipe(sass({sourceComments: 'map'}))
.pipe(gulp.dest('dist/stylesheets'))
});
gulp.task('fonts', function() {
return gulp.src(paths.fonts, {base: './bower_components/font-awesome/fonts'})
.pipe(gulp.dest('./dist/fonts'));
});
gulp.task('image', function () {
gulp.src(paths.images)
.pipe(imagemin())
.pipe(gulp.dest('./dist/images'));
});
// Rerun the task when a file changes
gulp.task('watch', function () {
gulp.watch(paths.scripts, ['scripts']);
gulp.watch(paths.coffeescripts, ['coffeescripts']);
gulp.watch(paths.templates, ['templates']);
gulp.watch(paths.stylez, ['stylez']);
gulp.watch(paths.fonts, ['fonts']);
gulp.watch(paths.image, ['image']);
});
gulp.task('default', ['javascripts', 'coffeescripts', 'templates', 'stylez', 'fonts', 'image', 'watch']);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment