Last active
August 29, 2015 14:06
-
-
Save systemist/110361af0a7b729b935b 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
'use strict'; | |
// generated on 2014-09-17 using generator-tiy-webapp 0.0.8 | |
// Require your modules | |
var gulp = require('gulp'); | |
var $ = require('gulp-load-plugins')(); | |
var rimraf = require('rimraf'); | |
var exec = require('child_process').exec; | |
var prompt = require('gulp-prompt'); | |
gulp.task('styles', function () { | |
return gulp.src('app/styles/main.scss') | |
.pipe($.plumber()) | |
.pipe($.rubySass({ | |
style: 'compressed', | |
precision: 10 | |
})) | |
.pipe($.autoprefixer('last 1 version')) | |
.pipe(gulp.dest('.tmp/styles')); | |
}); | |
gulp.task('html', ['styles'], function () { | |
return gulp.src('app/*.html') | |
.pipe($.useref.assets({searchPath: '{.tmp,app}'})) | |
.pipe($.if('*.css', $.csso())) | |
.pipe($.useref.restore()) | |
.pipe($.useref()) | |
.pipe(gulp.dest('dist')); | |
}); | |
gulp.task('images', function () { | |
return gulp.src('app/images/**/*') | |
.pipe($.cache($.imagemin({ | |
progressive: true, | |
interlaced: true | |
}))) | |
.pipe(gulp.dest('dist/images')); | |
}); | |
gulp.task('extras', function () { | |
return gulp.src(['app/*.*', '!app/*.html'], {dot: true}) | |
.pipe(gulp.dest('dist')); | |
}); | |
gulp.task('clean', function (cb) { | |
return $.cache.clearAll(cb, function() { | |
return rimraf('.tmp', function () { | |
return rimraf('dist', cb); | |
}); | |
}); | |
}); | |
gulp.task('connect', function () { | |
var connect = require('connect'); | |
var app = connect() | |
.use(require('connect-livereload')({port: 35729})) | |
.use(connect.static('app')) | |
.use(connect.static('.tmp')) | |
// paths to bower_components should be relative to the current file | |
// e.g. in app/index.html you should use ../bower_components | |
.use('/bower_components', connect.static('bower_components')) | |
.use(connect.directory('app')); | |
require('http').createServer(app) | |
.listen(9000) | |
.on('listening', function () { | |
console.log('Started connect web server on http://localhost:9000'); | |
}); | |
}); | |
gulp.task('serve', ['connect', 'styles'], function () { | |
require('opn')('http://localhost:9000'); | |
}); | |
// inject bower components | |
gulp.task('wiredep', function () { | |
var wiredep = require('wiredep').stream; | |
gulp.src('app/styles/*.scss') | |
.pipe(wiredep({directory: 'bower_components'})) | |
.pipe(gulp.dest('app/styles')); | |
gulp.src('app/*.html') | |
.pipe(wiredep({ | |
directory: 'bower_components' | |
})) | |
.pipe(gulp.dest('app')); | |
}); | |
gulp.task('watch', ['connect', 'serve'], function () { | |
$.livereload.listen(); | |
// watch for changes | |
gulp.watch([ | |
'app/*.html', | |
'.tmp/styles/**/*.css', | |
'app/scripts/**/*.js', | |
'app/images/**/*' | |
]).on('change', $.livereload.changed); | |
gulp.watch('app/styles/**/*.scss', ['styles']); | |
gulp.watch('bower.json', ['wiredep']); | |
}); | |
gulp.task('build', ['html', 'images', 'extras'], function () { | |
return gulp.src('dist/**/*').pipe($.size({title: 'build', gzip: true})); | |
}); | |
gulp.task('default', ['clean'], function () { | |
gulp.start('build'); | |
}); | |
// Push a subtree from our `dist` folder | |
gulp.task('deploy', function() { | |
gulp.src('/') | |
.pipe(prompt.prompt({ | |
type: 'confirm', | |
name: 'task', | |
message: 'This will deploy to GitHub Pages. Have you already built your application and pushed your updated master branch?' | |
}, function(res){ | |
if (res.task){ | |
console.log('Attempting: "git subtree push --prefix dist origin gh-pages"'); | |
exec('git subtree push --prefix dist origin gh-pages', function(err, stdout, stderr) { | |
console.log(stdout); | |
console.log(stderr); | |
}); | |
} else { console.log('Please do this first and then run `gulp deploy` again.'); } | |
})); | |
}); | |
// Test your app in the browser | |
// Needs to be better, but needed something quick | |
gulp.task('test-server', function() { | |
// Open Test Page | |
var connect = require('connect'); | |
var app = connect() | |
.use(require('connect-livereload')({port: 35729})) | |
.use(connect.static('test')) | |
.use('/app', connect.static('app')) | |
.use('/bower_components', connect.static('bower_components')) | |
.use(connect.directory('test')); | |
require('http').createServer(app) | |
.listen(8000) | |
.on('listening', function () { | |
console.log('Started connect testing server on http://localhost:8000'); | |
}); | |
require('opn')('http://localhost:8000'); | |
// Watch for changes in either the test/spec folder or app/scripts folder | |
$.livereload.listen(); | |
gulp.watch([ | |
'app/scripts/**/*.js', | |
'test/spec/**/*.js' | |
]).on('change', $.livereload.changed); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment