You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.1 KiB
JavaScript

var gulp = require('gulp');
/* CoffeeScript compile deps */
var path = require('path');
var gutil = require('gulp-util');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var coffee = require('gulp-coffee');
var cache = require('gulp-cached');
var remember = require('gulp-remember');
var plumber = require('gulp-plumber');
var livereload = require('gulp-livereload');
var nodemon = require("gulp-nodemon");
var net = require("net");
var webpack = require("gulp-webpack");
var sass = require("gulp-sass");
task = {
"source": ["public/**/*.coffee", "routes/**/*.coffee", "models/**/*.coffee", "tasks/**/*.coffee", "app.coffee", "util.coffee", "migrate.coffee", "db.coffee"]
}
gulp.task('webpack', function(){
return gulp.src("frontend/index.coffee")
.pipe(webpack({
watch: true,
module: {
loaders: [{ test: /\.coffee$/, loader: "coffee-loader" }]
},
resolve: { extensions: ["", ".web.coffee", ".web.js", ".coffee", ".js"] }
}))
.pipe(rename("bundle.js"))
.pipe(gulp.dest("public/js/"));
});
gulp.task('sass', function(){
// TODO: Put the source SCSS file in a more logical place...
return gulp.src("./public/css/*.scss")
.pipe(sass())
.pipe(gulp.dest("./public/css"));
});
function checkServerUp(){
setTimeout(function(){
var sock = new net.Socket();
sock.setTimeout(50);
sock.on("connect", function(){
console.log("Trigger page reload...");
livereload.changed();
sock.destroy();
})
.on("timeout", checkServerUp)
.on("error", checkServerUp)
.connect(3000);
}, 70);
}
gulp.task('watch', function () {
livereload.listen();
gulp.watch(['./**/*.css', 'views/**/*.jade', 'package.json', "./public/js/**/*.js"]).on('change', livereload.changed);
gulp.watch(["./public/css/style.scss"], ["sass"])
nodemon({
script: "./bin/www.coffee",
ext: "coffee",
delay: 500,
ignore: ["./frontend/"],
watch: ["app.coffee", "bin", "lib", "models", "routes", "tasks"]
}).on("start", checkServerUp).on("restart", function(file){
console.log("Restarted triggered by:", file);
});
});
gulp.task('default', ['sass', 'watch', 'webpack']);