-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.coffee
38 lines (31 loc) · 1.07 KB
/
gulpfile.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
'use strict'
gulp = require 'gulp'
coffee = require 'gulp-coffee'
coffeelint = require 'gulp-coffeelint'
util = require 'gulp-util'
plumber = require 'gulp-plumber'
concat = require 'gulp-concat'
spawn = require('child_process').spawn
onError = (err) ->
util.log util.colors.red 'stream error...'
util.log util.colors.red(JSON.stringify(err))
gulp.task 'lint', ->
gulp.src ['src/*.coffee', 'examples/*.coffee']
.pipe(coffeelint())
.pipe(coffeelint.reporter())
.pipe(coffeelint.reporter('fail'))
.on 'error', () -> process.exit(1)
gulp.task 'compile', ['lint'], ->
gulp.src 'src/*.coffee'
.pipe plumber {errorHandler: onError}
.pipe coffee bare: true
.pipe concat 'index.js'
.pipe gulp.dest 'dist/'
gulp.task 'server', ['compile'], ->
node.kill() if node
node = spawn "node", ["dist/index.js"], stdio: "inherit"
node.on "close", (code) ->
console.log "Error detected, waiting for changes..." if code is 8
gulp.task 'watch', ->
gulp.watch 'src/*.coffee', ['server']
gulp.task 'default', [ 'server', 'watch' ]