-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCakefile
More file actions
34 lines (30 loc) · 1002 Bytes
/
Cakefile
File metadata and controls
34 lines (30 loc) · 1002 Bytes
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
chalk = require 'chalk'
CoffeeScript = require 'coffeescript'
del = require 'del'
fs = require 'fs'
globby = require 'globby'
makeDir = require 'make-dir'
path = require 'path'
replaceExt = require 'replace-ext'
{ green } = chalk
{ join, basename } = path
{ log } = console
task 'build', 'Build all source files', () ->
invoke 'clean' # Clean before build
makeDir.sync('dist')
files = globby.sync 'src/*.coffee'
files.forEach (file) ->
baseFile = basename file
resultFile = join('dist', replaceExt(baseFile, '.js'))
sourceMapFile = join('dist', replaceExt(baseFile, '.js.map'))
result = CoffeeScript.compile(fs.readFileSync(file, 'utf8'), {
sourceMap: true,
bare: true,
transpile: JSON.parse(fs.readFileSync('.babelrc', 'utf8'))
})
fs.writeFileSync resultFile, result.js
fs.writeFileSync sourceMapFile, result.v3SourceMap
log green 'Build complete.'
task 'clean', 'Clean all built files', () ->
del.sync ['dist/*']
log green 'Cleaned.'