/
gulpfile.coffee
90 lines (72 loc) · 1.98 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
browserify = require "browserify"
watchify = require "watchify"
coffee_react = require "coffee-reactify"
gulp = require "gulp"
jade = require "gulp-jade"
source = require "vinyl-source-stream"
styl = require 'gulp-stylus'
autoprefixer = require "gulp-autoprefixer"
connect = require "gulp-connect"
uglify = require "gulp-uglify"
files =
html:
src: "app/*.jade"
dest: "dist/"
scripts:
src: "app/scripts/app.coffee"
watch: "app/scripts/**/*.coffee"
main: "app.js"
dest: "dist/scripts/"
styles:
src: "app/styles/app.styl"
watch: "app/styles/**/*styl"
dest: "dist/styles/"
fonts:
src: "app/fonts/*.*"
dest: "dist/fonts/"
args =
extensions: [".coffee", ".js"]
args[k] = v for k,v of watchify.args
b = browserify args
b.add files.scripts.src
b.transform coffee_react
bundler = b
bundle = (ids)->
bundler.bundle()
.on "error", (error) -> console.log error
.pipe source files.scripts.main
# .pipe uglify()
.pipe gulp.dest files.scripts.dest
.pipe connect.reload()
gulp.task "scripts", -> bundle
gulp.task "styles", ->
gulp.src files.styles.src
.pipe styl
compress: false
.pipe autoprefixer 'last 2 versions'
.pipe gulp.dest files.styles.dest
.pipe connect.reload()
gulp.task "html", ->
gulp.src files.html.src
.pipe jade
pretty: true
.pipe gulp.dest files.html.dest
.pipe connect.reload()
gulp.task 'fonts', ->
gulp.src files.fonts.src
.pipe gulp.dest files.fonts.dest
gulp.task "watch", ->
gulp.watch files.styles.watch, ["styles"]
gulp.watch files.html.src, ["html"]
gulp.watch files.fonts.src, ["fonts"]
gulp.task "auto-reload", ["build", "watch"], ->
# run watchify
bundler = watchify b
bundler.on "update", bundle
bundle()
# start server
connect.server
root: "./dist"
livereload: true
gulp.task "build", ["scripts", "styles", "html", "fonts"]
gulp.task "default", ["auto-reload"]