#Package requirements
npm install gulp-connect proxy-middleware --save-dev
var gulp = require('gulp'); | |
var concat = require('gulp-concat'); | |
var sass = require('gulp-sass'); | |
var minifyCss = require('gulp-minify-css'); | |
var rename = require('gulp-rename'); | |
var connect = require('gulp-connect'); | |
var paths = { | |
css: ['./www/css/**/*.css'], | |
js: ['./www/js/**/*.js'], | |
html: ['./www/index.html', './www/templates/**/*.html'], | |
sass: ['./scss/**/*.scss'] | |
}; | |
gulp.task('sass', function(done) { | |
gulp.src('./scss/ionic.app.scss') | |
.pipe(sass()) | |
.pipe(gulp.dest('./www/css/')) | |
.pipe(minifyCss({ | |
keepSpecialComments: 0 | |
})) | |
.pipe(rename({ extname: '.min.css' })) | |
.pipe(gulp.dest('./www/css/')) | |
.pipe(connect.reload()) | |
.on('end', done); | |
}); | |
gulp.task('js', function(done) { | |
gulp.src(paths.js) | |
.pipe(connect.reload()) | |
.on('end', done); | |
}); | |
gulp.task('css', function(done) { | |
gulp.src(paths.css) | |
.pipe(connect.reload()) | |
.on('end', done); | |
}); | |
gulp.task('html', function(done) { | |
gulp.src(paths.html) | |
.pipe(connect.reload()) | |
.on('end', done); | |
}); | |
gulp.task('watch', function() { | |
gulp.watch(paths.sass, ['sass']); | |
gulp.watch(paths.js, ['js']); | |
gulp.watch(paths.css, ['css']); | |
gulp.watch(paths.html, ['html']); | |
}); | |
gulp.task('default', ['watch', 'server']); | |
gulp.task('server', function(){ | |
connect.server({ | |
root: ['www'], | |
port: 9000, | |
livereload: true, | |
middleware: function(connect, o) { | |
return [ (function() { | |
var url = require('url'); | |
var proxy = require('proxy-middleware'); | |
var options = url.parse('http://beta.rhinobird.tv/api'); | |
options.route = '/api'; | |
return proxy(options); | |
})() ]; | |
} | |
}); | |
}); |
npm install gulp-{concat,sass,minify-css,rename,connect} --save-dev