-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.coffee
47 lines (39 loc) · 1.27 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
39
40
41
42
43
44
45
46
47
gulp = require 'gulp'
connect = require 'gulp-connect'
stylus = require 'gulp-stylus'
uglify = require 'gulp-uglifyjs'
rename = require 'gulp-rename'
hamlet = require 'gulp-hamlet-compile'
browserify = require 'gulp-browserify'
dookie = require 'dookie-css'
port = process.env.PORT or 9091
gulp.task 'styles', ->
gulp.src('./stylus/**/*.styl')
.pipe(stylus compress: true, use: [dookie.css()], errors: true)
.pipe(gulp.dest './client/css')
gulp.task 'hamlet', ->
gulp.src('./templates/**/*.haml')
.pipe(hamlet())
.pipe(gulp.dest './templates')
gulp.task 'browserify', ->
gulp.src('./coffee/app.coffee', read: false)
.pipe(browserify
extensions: ['.coffee']
transform: ['coffeeify']
)
.pipe(rename 'bundle.js')
.pipe(gulp.dest './client/js')
gulp.task 'uglify', ->
gulp.src('./client/js/bundle.js')
.pipe(uglify())
.pipe(rename 'bundle.min.js')
.pipe(gulp.dest './client/js')
gulp.task 'connect', ->
connect.server root: './client', port: port
gulp.task 'watch', ->
gulp.run ['build', 'server']
gulp.watch ['./coffee/**/*.coffee', './templates/**/*.haml'], ['hamlet', 'browserify']
gulp.watch './stylus/**/*.styl', ['styles']
gulp.task 'server', ['connect']
gulp.task 'build', ['styles', 'hamlet', 'browserify', 'uglify']
gulp.task 'default', ['watch']