forked from SitePen/dgrid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
81 lines (68 loc) · 1.52 KB
/
Gruntfile.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/* jshint node:true */
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-stylus');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('intern');
// grunt-contrib-stylus does not appear to support globbed destination filenames,
// so generate the desired destination/source configuration ahead of time
var stylusFiles = grunt.file.expand([
'css/dgrid.styl',
'css/skins/*.styl',
'!css/skins/skin.styl'
]);
var stylusFilesConfig = {};
stylusFiles.forEach(function (filename) {
stylusFilesConfig[filename.slice(0, -5) + '.css'] = filename;
});
grunt.initConfig({
clean: {
css: {
src: [ 'css/**/*.css' ]
}
},
stylus: {
options: {
compress: false,
use: [ require('nib') ]
},
compile: {
files: stylusFilesConfig
}
},
watch: {
stylus: {
files: [ 'css/**/*.styl' ],
tasks: [ 'stylus' ]
}
},
intern: {
options: {
reporters: [ 'LcovHtml', 'Pretty' ],
runType: 'runner',
config: 'test/intern/intern'
},
local: {
options: {
config: 'test/intern/intern-local'
}
},
browserstack: {},
saucelabs: {
options: {
config: 'test/intern/intern-saucelabs'
}
}
}
});
grunt.registerTask('default', [ 'stylus', 'watch:stylus' ]);
grunt.registerTask('test', function () {
var flags = Object.keys(this.flags);
if (!flags.length) {
flags.push('local');
}
flags.forEach(function (flag) {
grunt.task.run('intern:' + flag);
});
});
};