/
compile-extra-sass.coffee
40 lines (36 loc) · 1.15 KB
/
compile-extra-sass.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
module.exports = (config, gulp, Task) ->
promiseHelp = require "#{config.req.helpers}/promise"
return promiseHelp.get() unless config.extra.compile.enabled[Task.opts.loc].sass
# requires
# ========
q = require 'q'
path = require 'path'
plumber = require 'gulp-plumber'
sass = require "#{config.req.plugins}/gulp-sass"
taskRunner = require("#{config.req.helpers}/task-runner") config
extCss = '.css'
runTask = (src, dest, opts={}) ->
defer = q.defer()
srcOpts = base: opts.base
gulp.src src, srcOpts
.on 'error', (e) -> defer.reject e
.pipe plumber()
.pipe sass().on 'data', (file) ->
# needed for empty files. without, ext will stay .scss
ext = path.extname file.relative
file.path = file.path.replace ext, extCss if ext isnt extCss
.pipe gulp.dest dest
.on 'end', ->
defer.resolve message: "completed task: #{Task.name}"
defer.promise
# API
# ===
api =
runTask: (loc) ->
promise = taskRunner.async runTask, 'compile', 'sass', [loc], Task
promise.then ->
log: true
message: "compiled extra sass to: #{config.dist.app[loc].dir}"
# return
# ======
api.runTask Task.opts.loc