forked from shieldjs/shield.js
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathGruntfile.js
More file actions
121 lines (110 loc) · 3.34 KB
/
Copy pathGruntfile.js
File metadata and controls
121 lines (110 loc) · 3.34 KB
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*global module:false*/
module.exports = function(grunt) {
'use strict';
var pkg = grunt.file.readJSON('package.json');
function banner(buildName) {
return '/*! \n * ' + [
pkg.name + ' v' + pkg.version + ' - ' + pkg.description,
pkg.url,
'',
'Copyright (c) ' + grunt.template.today('yyyy') + ' ' + pkg.name + ' contributors',
pkg.licenses + ' Licensed',
'',
'Released: ' + grunt.template.today('yyyy-mm-dd'),
'',
].join('\n * ') + '\n' +
//in /* */ comment due to IE's conditional compilaton comments
'//@ sourceMappingURL=Shield.' + buildName + '.map\n' +
' */\n';
}
grunt.initConfig({
pkg: pkg,
jshint: {
files: ['src/**/*.js'],
options: {
bitwise: true,
boss: true,
browser: true,
curly: true,
devel: true,
eqeqeq: true,
eqnull: true,
es5: true,
immed: true,
indent: 2,
latedef: true,
maxdepth: 9,
maxerr: 20,
maxparams: 6,
newcap: true,
noarg: true,
noempty: true,
nonew: true,
quotmark: 'single',
regexp: true,
strict: true,
sub: true,
trailing: true,
undef: true,
unused: true,
white: false,
globals: {
ActiveXObject: false
}
},
gruntfile: {
src: 'Gruntfile.js'
}
},
lodash: {
//it'd be nice to see this configurable at some point
modifier: 'legacy',
//not sure on the best place to put this.. src/ makes it transparent/clear for a contributor though
dest: 'lib/lodash.custom.js',
include: ['isArray', 'isString', 'isFunction', 'each']
},
'closure-compiler': (function (map) {
var baseFiles = [
'lib/lodash.custom.js',
'node_modules/extend-function/extendFunction.js',
'src/Shield.js'
];
var closureHash = {};
for (var build in map) {
if (map.hasOwnProperty(build)) {
closureHash[build] = {
js: baseFiles.concat(map[build]),
jsOutputFile: 'dist/' + build + '.min.js',
maxBuffer: 500,
options: {
compilation_level: 'SIMPLE_OPTIMIZATIONS',
language_in: 'ECMASCRIPT3',
output_wrapper: banner(build) + '%output%',
source_map_format: 'V3', // || V1 || V2 || DEFAULT
create_source_map: 'dist/' + build + '.min.map'
}
};
}
}
return closureHash;
})({
base: [], //just use base files
historicalConsole: ['node_modules/historical-console/historicalConsole.js'],
jQuery: ['src/shield.jquery.js'],
historicalConsoleAndjQuery: ['node_modules/historical-console/historicalConsole.js', 'src/shield.jquery.js']
}),
watch: {
files: ['Gruntfile.js', 'package.json', 'src/**/*.js', 'test/**/*.js'],
tasks: ['default']
}
});
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-lodashbuilder');
grunt.loadNpmTasks('grunt-closure-compiler');
grunt.loadNpmTasks('grunt-contrib-jasmine');
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task
grunt.registerTask('default', ['jshint', 'lodash', 'closure-compiler', 'jasmine', 'watch']);
// Travis-CI task
grunt.registerTask('travis', ['jshint']);
};