-
Notifications
You must be signed in to change notification settings - Fork 536
/
gruntfile.js
91 lines (78 loc) · 2.14 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
module.exports = function (grunt) {
require("matchdep").filterAll("grunt-*").forEach(grunt.loadNpmTasks);
var globalConfig = {
moduleName: "blueprint3d",
sources: ["src/*.ts", "src/*/*.ts"],
outDir: "dist",
docDir: "doc",
exampleDir: "example/js/"
};
var configuration = {
clean: [globalConfig.outDir, globalConfig.docDir]
};
configuration.copy = {};
configuration.copy[globalConfig.moduleName] = {
src: globalConfig.outDir + "/" + globalConfig.moduleName + ".js",
dest: globalConfig.exampleDir + "/" + globalConfig.moduleName + ".js"
};
configuration.copy.threejs = {
src: "node_modules/three/three.min.js",
dest: globalConfig.exampleDir + "/three.min.js"
}
configuration.typescript = {
options: {
target: "es5",
declaration: true,
sourceMap: true,
removeComments: false
}
};
configuration.typescript[globalConfig.moduleName] = {
src: globalConfig.sources,
dest: globalConfig.outDir + "/" + globalConfig.moduleName + ".js"
};
configuration.typedoc = {
options: {
name: globalConfig.moduleName,
target: "es5",
mode: "file",
readme: "none"
}
}
configuration.typedoc[globalConfig.moduleName] = {
options: {
out: globalConfig.docDir + "/" + globalConfig.moduleName,
name: globalConfig.moduleName
},
src: globalConfig.sources
};
configuration.uglify = {
options: {
mangle: true,
beautify: false,
sourceMap: true
}
}
configuration.uglify[globalConfig.moduleName] = {
files: {}
}
configuration.uglify[globalConfig.moduleName].files["dist/" + globalConfig.moduleName + ".min.js"] = globalConfig.outDir + "/" + globalConfig.moduleName +".js";
grunt.initConfig(configuration);
grunt.registerTask("debug", [
"typescript:" + globalConfig.moduleName
]);
grunt.registerTask("example", [
"copy:threejs",
"copy:" + globalConfig.moduleName
]);
grunt.registerTask("release", [
"clean",
"debug",
"uglify:" + globalConfig.moduleName,
"typedoc:" + globalConfig.moduleName
]);
grunt.registerTask("default", [
"debug",
"example"
]);
};