Created
March 18, 2015 12:54
-
-
Save stianwestvig/adbfa06eefc50d026ddc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var gulp = require('gulp'); | |
var jade = require('gulp-jade'); | |
var sass = require('gulp-sass'); | |
var browserify = require('browserify'); | |
var uglify = require('gulp-uglify'); | |
var concat = require('gulp-concat'); | |
var source = require('vinyl-source-stream'); | |
var plumber = require('gulp-plumber'); | |
var prefix = require('gulp-autoprefixer'); | |
var minifycss = require('gulp-minify-css'); | |
var uglify = require('gulp-uglify'); | |
var imagemin = require('gulp-imagemin'); | |
var livereload = require('gulp-livereload'); | |
var modernizr = require('gulp-modernizr'); | |
var deployd = require('deployd'), | |
options = { | |
port: 3000, | |
env : "development" | |
}; | |
var dpd = deployd(options); | |
// Paths | |
var paths = { | |
templates: ['src/templates/*.jade'], | |
scss: ['src/scss/*.scss'], | |
scripts: ['src/js/**/*.js'], | |
mainScript: ['./src/js/main'], | |
images: ['src/img/*'], | |
fonts: ['src/fonts/**'], | |
dist: ['public'] | |
}; | |
// Deployd | |
gulp.task('deployd', function () { | |
dpd.listen(); | |
dpd.on('listening', function() { | |
console.log("Server is listening."); | |
}); | |
dpd.on('error', function(err) { | |
console.error('Server dead.',err); | |
process.nextTick(function() { | |
process.exit(); | |
}); | |
}); | |
}); | |
// Jade to HTML | |
gulp.task('jade', function() { | |
gulp.src(paths.templates) | |
.pipe(plumber()) | |
.pipe(jade({ | |
pretty: true | |
})) | |
.pipe(gulp.dest('public')); | |
}); | |
// Compile Sass | |
gulp.task('sass', function() { | |
gulp.src(['src/scss/*.scss', '!src/scss/_variables.scss']) | |
.pipe(plumber()) | |
.pipe(sass({ | |
includePaths: ['src/scss', 'bower_components/foundation/scss'], | |
outputStyle: 'expanded' | |
})) | |
.pipe(prefix( | |
"last 1 version", "> 1%", "ie 8", "ie 7" | |
)) | |
//.pipe(gulp.dest(paths.dist + '/css')) | |
.pipe(minifycss()) | |
.pipe(gulp.dest(paths.dist + '/css')); | |
}); | |
/*gulp.task('scripts', function () { | |
browserify(paths.mainScript, | |
{ | |
debug: true, | |
insertGlobals: true | |
}) | |
.bundle() | |
.on('error', function (err) { | |
console.log(err.toString()); | |
this.emit('end'); | |
}) | |
.pipe(source('bundle.js')) | |
.pipe(gulp.dest(paths.dist + '/js')); | |
});*/ | |
gulp.task('modernizr', function() { | |
gulp.src(paths.scripts) | |
.pipe(plumber()) | |
.pipe(modernizr()) | |
.pipe(gulp.dest("public/js")) | |
}); | |
gulp.task('scripts', function() { | |
return gulp.src([ | |
'bower_components/angular/angular.js', | |
'bower_components/angular-i18n/angular-locale_no.js', | |
'bower_components/angular-animate/angular-animate.js', | |
'bower_components/angular-route/angular-route.js', | |
'bower_components/angular-foundation/mm-foundation-tpls.js', | |
'public/js/modernizr.js', | |
'src/js/main.js', | |
'src/js/routes.js', | |
'src/js/directives/valid-password-directive.js', | |
'src/js/directives/typeahead-directive.js', | |
'src/js/directives/search-typeahead-directive.js', | |
'src/js/directives/datepicker-directive.js', | |
'src/js/directives/valid-file-directive.js', | |
'src/js/controllers/calendar-controller.js', | |
'src/js/controllers/contact-controller.js', | |
'src/js/controllers/navigation-controller.js', | |
'src/js/controllers/page-controller-offline.js', | |
'src/js/controllers/subject-controller.js', | |
'src/js/controllers/autocomplete-controller.js', | |
'src/js/controllers/search-controller.js', | |
'src/js/controllers/footer-controller.js', | |
'src/js/controllers/form-controller.js', | |
'src/js/services/data-service.js', | |
'src/js/services/offline-data-service.js', | |
'src/js/services/date-service.js', | |
'src/js/services/focus-service.js' | |
]) | |
.pipe(plumber()) | |
.pipe(concat('bundle.js')) | |
.pipe(gulp.dest(paths.dist + '/js')) | |
}); | |
gulp.task('scripts_server', function() { | |
return gulp.src([ | |
'bower_components/angular/angular.js', | |
'bower_components/angular-i18n/angular-locale_no.js', | |
'bower_components/angular-animate/angular-animate.js', | |
'bower_components/angular-route/angular-route.js', | |
'bower_components/angular-foundation/mm-foundation-tpls.js', | |
'public/js/modernizr.js', | |
'src/js/main.js', | |
'src/js/directives/valid-password-directive.js', | |
'src/js/directives/typeahead-directive.js', | |
'src/js/directives/search-typeahead-directive.js', | |
'src/js/directives/datepicker-directive.js', | |
'src/js/directives/valid-file-directive.js', | |
'src/js/controllers/calendar-controller.js', | |
'src/js/controllers/contact-controller.js', | |
'src/js/controllers/navigation-controller.js', | |
'src/js/controllers/page-controller.js', | |
'src/js/controllers/subject-controller.js', | |
'src/js/controllers/autocomplete-controller.js', | |
'src/js/controllers/search-controller.js', | |
'src/js/controllers/footer-controller.js', | |
'src/js/controllers/form-controller.js', | |
'src/js/services/data-service.js', | |
'src/js/services/date-service.js', | |
'src/js/services/focus-service.js' | |
]) | |
.pipe(plumber()) | |
.pipe(concat('bundle_server.js')) | |
.pipe(uglify({ mangle: false })) // after dev. | |
.pipe(gulp.dest(paths.dist + '/js')) | |
}); | |
// Compress images | |
gulp.task('imagemin', function() { | |
gulp.src(paths.images) | |
.pipe(plumber()) | |
//.pipe(imagemin()) | |
.pipe(gulp.dest(paths.dist + '/img')); | |
}); | |
// Copy all static assets | |
gulp.task('copyFonts', function() { | |
return gulp.src(paths.fonts) | |
.pipe(gulp.dest(paths.dist + '/fonts')); | |
}); | |
// deploy to external folder | |
gulp.task('deploy', function() { | |
return gulp.src(paths.dist, {base:"."}) | |
.pipe(gulp.dest('../../ks.prototype')); | |
}); | |
// Watch files | |
gulp.task('watch', function(event) { | |
gulp.watch(paths.templates, ['jade']); | |
gulp.watch(paths.scss, ['sass']); | |
gulp.watch(paths.images, ['imagemin']); | |
gulp.watch(paths.fonts, ['copyFonts']); | |
gulp.watch(paths.scripts, ['scripts', 'scripts_server']); | |
}); | |
// Create dist | |
gulp.task('build', ['jade', 'sass', 'modernizr', 'scripts', 'scripts_server', 'imagemin', 'copyFonts']); | |
// default grunt | |
gulp.task('default', ['build', 'watch', 'deployd']); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment