/
gruntfile.js
122 lines (110 loc) · 2.72 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
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
122
module.exports = function(grunt) {
'use strict';
var pkg = grunt.file.readJSON('package.json');
grunt.initConfig({
sampleDir: "samples",
libDir: "src",
destDir: "dest",
testDir: "test",
docDir: "doc",
watch: {
sample: {
files: ['<%= sampleDir %>/*.jsx', '<%= libDir %>/*.jsx'],
tasks: ['jsx:build']
},
test: {
files: ['<%= testDir %>/*.jsx', '<%= libDir %>'],
tasks: ['jsx:test']
}
},
jsx: {
sample: {
src: ['<%= sampleDir %>/*.jsx'],
add_search_path: ['<%= libDir %>'],
dest: '<%= sampleDir %>/',
executable: 'node'
},
commonjs: {
src: ['src/*.jsx'],
output_rule: {
regexp: /src\/(.+)\.jsx/,
replace: 'dest\/$1.common.js'
},
add_search_path: ['<%= libDir %>'],
minify: true,
release: true,
linker: 'commonjs-lib'
},
amd: {
src: ['src/*.jsx'],
output_rule: {
regexp: /src\/(.+)\.jsx/,
replace: 'dest\/$1.amd.js'
},
add_search_path: ['<%= libDir %>'],
minify: true,
release: true,
linker: 'amd-lib'
},
closure: {
src: ['src/*.jsx'],
output_rule: {
regexp: /src\/(.+)\.jsx/,
replace: 'dest\/$1.closure.js'
},
add_search_path: ['<%= libDir %>'],
minify: true,
release: true,
linker: 'closure-lib'
},
global: {
src: ['src/*.jsx'],
output_rule: {
regexp: /src\/(.+)\.jsx/,
replace: 'dest\/$1.global.js'
},
add_search_path: ['<%= libDir %>'],
minify: true,
release: true,
linker: 'export-global'
},
standard: {
src: ['src/*.jsx'],
output_rule: {
regexp: /src\/(.+)\.jsx/,
replace: 'dest\/$1.js'
},
add_search_path: ['<%= libDir %>'],
release: true,
minify: true
},
test: {
src: ['<%= testDir %>/*.jsx'],
add_search_path: ['<%= libDir %>'],
test: true
},
doc: {
src: ['<%= libDir %>/*.jsx', 'src/*.jsx'],
add_search_path: ['<%= libDir %>'],
dest: '<%= docDir %>',
mode: 'doc'
}
}
});
for (var key in pkg.devDependencies) {
if (/grunt-/.test(key)) {
grunt.loadNpmTasks(key);
}
}
grunt.registerTask('default', ['jsx:test']);
grunt.registerTask('build', [
'jsx:commonjs',
'jsx:amd',
'jsx:closure',
'jsx:standard',
'jsx:global'
]);
grunt.registerTask('test', ['jsx:test']);
grunt.registerTask('doc', ['jsx:doc']);
};
// vim: set expandtab tabstop=2 shiftwidth=2: