forked from mklabs/node-build-script
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrunt.js
92 lines (85 loc) · 2.71 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
//
// Our project gruntfile
// =====================
//
// Type grunt --help to see the support tasks, or browse the support/grunt-*.js
// files for further informations.
//
// Type grunt lint to run jshint through the sources.
//
// Type grunt test (or npm test) to run the default test suite (wrapper to Mocha)
//
// Type grunt test:<subtarget> to run the tests on a subset of files.
//
// Test
// ----
//
// Tests are stored in test/tasks/*.js. They run agains the files in test/h5bp
// which is a submodule pointing to h5bp/html5-boilerplate repository.
//
// test/helpers/* include utility functions to run grunt in a spawned process
// for a given task.
//
// test/features/*.feature are Gherkin feature file (cucumber) from which tests
// can be autogenerated. These are not unit tests, and may be seen more as
// functional tests. test/features/steps/*.js may contain step definitions, and
// are used to bootstrap basic and shared codes / assertions throughout our
// test suite.
//
// test/fixtures/* includes files that gets either copied before running a test,
// or expected files that get compared to files when a task is complete.
// Usually, they're stored within a folder mapping the related task's name.
//
// Type open test/index.html to see the generated documentation from our tests,
// done using the really neat mocha documentation reporter.
//
// Unit tests for each helpers defined remains to be done.
//
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
lint: {
grunt: ['grunt.js', 'tasks/*.js'],
lib: ['lib/plugins/*.js']
},
watch: {
files: '<config:lint.grunt>',
tasks: 'lint:grunt'
},
jshint: {
options: {
es5: true,
node: true,
curly: false,
eqeqeq: true,
immed: true,
latedef: false,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true
}
},
test: {
// each task is tested individually, with basic files comparison with
// what is in test/fixtures/
tasks: ['test/tasks/test-*.js'],
// default task with default options
builds: ['test/tasks/default.js', 'test/tasks/usemin.js']
// css: 'test/tasks/test-css.js'
// img: 'test/tasks/test-img.js'
// tar: 'test/tasks/test-tar.js'
// usemin: 'test/tasks/test-usemin.js'
// docs: 'test/tasks/test-docs.js'
// html: 'test/tasks/test-html.js'
// init: 'test/tasks/test-init.js'
}
});
// Default task.
grunt.registerTask('default', 'lint');
// load support for tasks, not part of the plugin functionnality.
// This gruntfile is our dev gruntfile.
grunt.loadTasks('./support/');
};