/
Gruntfile.js
191 lines (165 loc) · 6.87 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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
module.exports = function(grunt) {
'use strict';
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
'node-inspector': {
dev: {}
},
clean : {
doc: ['doc/*','!doc/example.html'],
build: ['build'],
tmp: ['build/*pre.js'],
release: ['release']
},
jshint : {
all : {
src : ['Gruntfile.js', '3Dmol/**.js', '!3Dmol/jmolmodel.js', '!3Dmol/jmolviewer.js']
},
main : {
src : ['Gruntfile.js', '3Dmol/3Dmol.js', '3Dmol/glcartoon.js', '3Dmol/glmodel.js', '3Dmol/glviewer.js', '3Dmol/glshape.js', '3Dmol/gldraw.js']
},
aux : {
src : ['Gruntfile.js', '3Dmol/*.js', '!3Dmol/glcartoon.js', '!3Dmol/glmodel.js', '!3Dmol/glviewer.js', '!3Dmol/glshape.js',
'!3Dmol/jmolmodel.js', '!3Dmol/jmolviewer.js']
}
},
concat : {
options : {
separator : ''
},
pre : {
src : ['3Dmol/3dmol.js','3Dmol/WebGL/math.js','3Dmol/WebGL/shapes.js',
'3Dmol/WebGL/core.js','3Dmol/WebGL/*.js','3Dmol/**.js','!3Dmol/SurfaceWorker.js','3Dmol/SurfaceWorker.js'],
dest : 'build/3Dmol-pre.js'
},
big : {
src : ['js/jquery-1.11.3.js','js/mmtf.js','js/pako_inflate.js','build/3Dmol-pre.js'],
dest : 'build/3Dmol.js'
},
bignojquery : {
src : ['js/mmtf.js','js/pako_inflate.js', 'build/3Dmol-pre.js'],
dest : 'build/3Dmol-nojquery.js'
},
closure : {
src : ['build/jquery-1.11.3-min-pre.js','build/mmtf-min-pre.js','build/pako_inflate-min-pre.js','build/3Dmol-min-pre.js'],
dest : 'build/3Dmol-min.js'
},
closurenojquery: {
src : ['build/mmtf-min-pre.js','build/pako_inflate-min-pre.js','build/3Dmol-min-pre.js'],
dest : 'build/3Dmol-nojquery-min.js'
},
append : {
src : ['build/3Dmol-min.js', 'append.js'],
dest : 'build/3Dmol-min.js'
}
},
uglify : {
options : {
mangle : false
},
$3Dmol : {
src : ['build/3Dmol-pre.js'],
dest : 'build/3Dmol-min-pre.js'
},
jquery : {
src : ['js/jquery-1.11.3.js'],
dest : 'build/jquery-1.11.3-min-pre.js'
},
mmtf : {
src : ['js/mmtf.js'],
dest : 'build/mmtf-min-pre.js'
},
pako : {
src : ['js/pako_inflate.js'],
dest : 'build/pako_inflate-min-pre.js'
}
},
'closure-compiler' : {
$3Dmol : {
closurePath : 'lib/closure_compiler',
js : ['build/3Dmol-pre.js'],
jsOutputFile : 'build/3Dmol-min-pre.js',
noreport : true,
options : {
'compilation_level': 'SIMPLE_OPTIMIZATIONS',
'warning_level': 'DEFAULT',
'language_in': 'ECMASCRIPT5',
'create_source_map': 'script.map'
}
},
jquery : {
closurePath : 'lib/closure_compiler',
js : ['js/jquery-1.11.3.js'],
jsOutputFile : 'build/jquery-1.11.3-min-pre.js',
noreport : true,
options : {
'compilation_level': 'SIMPLE_OPTIMIZATIONS',
'warning_level': 'DEFAULT',
'language_in': 'ECMASCRIPT5'
}
},
mmtf : {
closurePath : 'lib/closure_compiler',
js : ['js/mmtf.js'],
jsOutputFile : 'build/mmtf-min-pre.js',
noreport : true,
options : {
'compilation_level': 'SIMPLE_OPTIMIZATIONS',
'warning_level': 'DEFAULT',
'language_in': 'ECMASCRIPT5'
}
},
pako : {
closurePath : 'lib/closure_compiler',
js : ['js/pako_inflate.js'],
jsOutputFile : 'build/pako_inflate-min-pre.js',
noreport : true,
options : {
'compilation_level': 'SIMPLE_OPTIMIZATIONS',
'warning_level': 'DEFAULT',
'language_in': 'ECMASCRIPT5'
}
},
},
shell : {
doc : {
options : {
stdout: true
},
command: "node node_modules/jsdoc/jsdoc.js 3Dmol/*.js doc.md -c jsdoc.conf.json -t 3Dmol-doc-template -u tutorials/ -d doc/"
},
pythonServer: {
options: {
stdout: true
},
command: 'python tests/auto/generate_tests.py'
}
},
copy : {
release : {
expand : true,
src : 'build/*.js',
dest : 'release/',
flatten : 'true'
}
}
});
grunt.registerTask('doc', ['clean:doc', 'shell:doc']);
grunt.registerTask('concat_pre_build', ['concat:pre']);
grunt.registerTask('concat_post_build', ['concat:big', 'concat:bignojquery', 'concat:closure', 'concat:closurenojquery']);
grunt.registerTask('test', ['shell:pythonServer']);
grunt.registerTask('test_closure', ['clean:build', 'concat_pre_build', 'closure-compiler', 'concat_post_build', 'concat:append']);
grunt.registerTask('build', ['clean:build', 'clean:doc', 'concat_pre_build', 'closure-compiler', 'concat_post_build', 'shell:doc', 'clean:tmp','shell:pythonServer']);
grunt.registerTask('build-quick', ['clean:build', 'concat_pre_build', 'concat_post_build', 'clean:tmp']);
grunt.registerTask('build-noclean', ['concat_pre_build', 'closure-compiler', 'concat_post_build', 'shell:doc', 'clean:tmp']);
grunt.registerTask('release-update', ['clean:release', 'build', 'copy:release']);
grunt.registerTask('debug-doc', ['shell:default']);
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-closure-compiler');
grunt.loadNpmTasks('grunt-shell');
grunt.loadNpmTasks('grunt-node-inspector');
grunt.loadNpmTasks('grunt-contrib-copy');
};