-
Notifications
You must be signed in to change notification settings - Fork 25
/
Jakefile.js
64 lines (47 loc) · 1.66 KB
/
Jakefile.js
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
var build = require('./build/build.js'),
lint = require('./build/hint.js'),
fs = require('fs');
var COPYRIGHT = fs.readFileSync('src/copyright.js', 'utf8');
desc('Check Raphael Layer source for errors with JSHint');
task('lint', function() {
var files = build.getFiles();
console.log('Checking for JS errors...');
var errorsFound = lint.jshint(files);
if(errorsFound > 0) {
console.log(errorsFound + ' error(s) found.\n');
fail();
} else {
console.log('\t No errors found.');
}
});
desc('Combine and compress Raphael Layer source files');
task('build', ['lint'], function(compsBase32, buildName) {
var pathPart = 'dist/rlayer' + (buildName ? '-' + buildName : ''),
srcPath = pathPart + '-src.js',
path = pathPart + '.js';
var files = build.getFiles(compsBase32);
console.log('Concatenating ' + files.length + ' files...');
var content = build.combineFiles(files);
var oldSrc = build.load(srcPath),
newSrc = COPYRIGHT + content,
srcDelta = build.getSizeDelta(newSrc, oldSrc);
console.log('\tUncompressed size: ' + newSrc.length + ' bytes (' + srcDelta + ')');
if(newSrc == oldSrc) {
console.log('\tNo changes.');
} else {
build.save(srcPath, newSrc);
console.log('\tSaved to ' + srcPath);
}
console.log('Compressing...');
var oldCompressed = build.load(path),
newCompressed = COPYRIGHT + build.uglify(content),
delta = build.getSizeDelta(newCompressed, oldCompressed);
console.log('\tCompressed size: ' + newCompressed.length + ' bytes (' + delta + ')');
if(newCompressed === oldCompressed) {
console.log('\tNo changes.');
} else {
build.save(path, newCompressed);
console.log('\tSaved to ' + path);
}
});
task('default', ['build']);