-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gulpfile.coffee
99 lines (86 loc) · 2.26 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
91
92
93
94
95
96
97
98
99
g = require("gulp")
$ = do require "gulp-load-plugins"
spawn = require("child_process").spawn
bs = require "browser-sync"
nib = require "nib"
# coffeescript task
g.task "cs", ->
g.src [
"./src/coffee/**/*.coffee",
"!./src/coffee/**/_*.coffee",
"!./src/coffee/_*/**"
]
.pipe $.plumber()
.pipe $.coffee()
.pipe $.uglify()
.pipe g.dest("./release/js/")
# stylus task
g.task "stylus", ->
g.src [
"./src/styl/**/*.styl",
"!./src/styl/**/_*.styl",
"!./src/styl/_*/**"
]
.pipe $.plumber()
.pipe $.stylus
use : nib()
compress : true
sourcemap :
#inline : true
sourceRoot : '.'
.pipe g.dest("./release/css/")
# jade task
g.task "jade", ->
g.src [
"./src/jade/**/*.jade",
"!./src/jade/**/_*.jade",
"!./src/jade/_*/**"
]
.pipe $.plumber()
.pipe $.jade()
.pipe $.prettify()
.pipe g.dest("./release/")
# Image copy task
g.task "images", ->
g.src [
"./src/img/**/*",
"!./src/img/**/_*.*",
"!./src/img/_*/**",
]
.pipe g.dest("./release/img/")
# File watch task
g.task "watch", ->
g.watch "./src/coffee/**/*.coffee", ["cs"]
g.watch "./src/styl/**/*.styl", ["stylus"]
g.watch "./src/jade/**/*.jade", ["jade"]
g.watch "./src/img/**/*", ["images"]
# Browser-sync task
g.task "bs", ->
bs
port : 3000
open : true
notify : true
files : "release/**"
index : "index.html"
server :
baseDir : "release/"
# Gulpfile watcher
g.task "self-watch", ["cs", "stylus", "jade", "images", "bs"], ->
proc = null
command = null
args = null
if /^win/.test(process.platform)
# windows
command = "cmd"
args = ["/c", "gulp", "watch"]
else
command = "gulp"
args = ["watch"]
spawnChildren = ->
proc.kill() if proc?
proc = spawn command, args, {stdio: 'inherit'}
g.watch ["Gulpfile.coffee"], spawnChildren
spawnChildren()
# watch `./release` dir
g.watch "./release/**/*", bs.reload
g.task "default", ["self-watch"]