forked from ariatemplates/ariatemplates
-
Notifications
You must be signed in to change notification settings - Fork 0
/
grunt.js
107 lines (92 loc) · 3.94 KB
/
grunt.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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/**
* Main Aria Templates grunt entry point.
*
* Note : this file was deliberately named 'gruntfile.js' instead of 'grunt.js'
* to avoid Windows-specific problem where the command 'grunt' has a precedence
* to try to open 'grunt.js' instead of invoking globally installed grunt binary.
*
* To run this file, type in the console : grunt --config gruntfile.js
*/
module.exports = function(grunt) {
grunt.loadTasks('./build/grunt-tasks');
var jsHintConf = require('./build/config/jshint.json');
var jsHintConfBuild = require('./build/config/jshint-build.json');
jsHintConfBuild = grunt.utils._.extend(jsHintConf, jsHintConfBuild);
grunt.initConfig({
// ===============================================================
// CONFIG
// ===============================================================
/**
* NPM file to read the current version of the product etc.
*/
pkg : '<json:package.json>',
/**
* Options for Grunt's original JSHint wrapper.
*/
jshint : {
options : jsHintConf,
build : { // the target 'atlint:build' has overridden set of options
options : jsHintConfBuild
}
},
/**
* Options for our overrides of Grunt's JSHint wrapper.
*/
jshintOverride : {
ignoredMessages : [
"Confusing use of '!'", // https://github.com/jshint/jshint/issues/455
"Unexpected space after", // JSHint 0.9.0 -> 0.9.1; see https://github.com/jshint/jshint/issues/667 666 655
"to have an indentation" // JSHint 0.9.0 -> 0.9.1; see https://github.com/jshint/jshint/issues/667 666 655
]
},
// ===============================================================
// REAL TASKS
// ===============================================================
/**
* Targets for linting with JSHint. This is a custom wrapper to handle
* excluded files, and then invoke the 'lint' task.
*/
atlint : {
source : {
include : ['src/aria/**/*.js'],
exclude : [
// Resources : dependent on https://github.com/jshint/jshint/issues/494
'src/aria/resources/CalendarRes*.js',
'src/aria/resources/DateRes*.js',
'src/aria/resources/multiselect/FooterRes*.js',
// SynEvents : dependent on https://github.com/ariatemplates/ariatemplates/issues/33
'src/aria/utils/SynEvents.js',
// Using node.js globals
'src/aria/node.js'
]
},
build : {
include : [
'src/aria/node.js',
'grunt.js',
'build/build*.js',
'build/grunt-tasks/*.js'
]
}
},
/**
* Run a child Grunt build.
*/
forkgrunt : {
osbootstrap : './build/build-os-bootstrap.js',
osprod : './build/build-os-prod.js'
}
});
// tasks for debugging
grunt.registerTask('osBootstrapOnly', 'forkgrunt:osbootstrap');
grunt.registerTask('osProdOnly', 'forkgrunt:osprod');
grunt.registerTask('releaseOsBootstrap', 'atlint:source forkgrunt:osbootstrap');
grunt.registerTask('releaseOsProd', 'atlint:source forkgrunt:osprod');
// tasks for real build
// Note that 'atlint' is not present in 'release'.
// It's run separately in Travis build, at the very beginning.
// Use 'grunt atlint' to run it manually if you want.
grunt.registerTask('release', 'forkgrunt:osbootstrap forkgrunt:osprod');
// include time measurements
grunt.registerTask('default', 'gruntTimeHookStart release gruntTimeHookEnd');
};