This repository has been archived by the owner on Mar 13, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathjakefile
75 lines (52 loc) · 1.63 KB
/
jakefile
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
var fs = require('fs'),
uglify = require('uglify-js')
function buildMinifiedJs(string) {
var ast,
compressor = uglify.Compressor()
ast = uglify.parse(string)
ast.figure_out_scope()
ast.transform(compressor)
ast.figure_out_scope()
ast.compute_char_frequency()
ast.mangle_names()
return ast.print_to_string({"comments": /adrian sieber/i})
}
desc('Default build process')
task('default', ['dominate.min.js', 'dominate.essential.min.js'], function() {
})
desc('Compile dominate.min.js')
task('dominate.min.js', [], {async: true}, function() {
var jsString = fs.readFileSync('src/dominate.js').toString(),
file = fs.openSync('dominate.min.js', 'w+'),
version = JSON.parse(fs.readFileSync('package.json')).version
jsString = buildMinifiedJs(jsString.replace('{{ VERSION }}', version))
fs.write(file, jsString, undefined, undefined, function() {
console.log('Building dominate.min.js succeeded')
})
complete()
})
desc('Compile dominate.essential.min.js')
task('dominate.essential.min.js', [], {async: true}, function() {
var jsString = fs.readFileSync('src/dominate.essential.js').toString(),
file = fs.openSync('dominate.essential.min.js', 'w+')
fs.write(file, buildMinifiedJs(jsString), undefined, undefined, function() {
console.log('Building dominate.essential.min.js succeeded')
})
complete()
})
desc('Remove compiled files')
task('clean', [], {async: true}, function() {
var files = [
'dominate.min.js',
'dominate.essential.min.js'
]
files.forEach(function(file) {
fs.exists(file, function(exists) {
if(exists)
fs.unlink(file, function(err) {
if(err) console.log(err)
})
})
})
complete()
})