-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
94 lines (87 loc) · 2.96 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
"use strict";
var webpackConfig = require("./webpack.config");
module.exports = function (grunt) {
var pkg = grunt.file.readJSON("package.json");
grunt.initConfig({
pkgName: pkg.name,
name: pkg.name,
watch: {
updateWidgetFiles: {
"files": [ "./dist/tmp/src/**/*" ],
"tasks": [ "compress:dist", "copy:distDeployment", "copy:mpk" ],
options: {
debounceDelay: 250,
livereload: true
}
},
sourceFiles: {
"files": [ "./src/**/*" ],
"tasks": [ "copy:source" ]
}
},
compress: {
dist: {
options: {
archive: "./dist/" + pkg.version + "/" + pkg.name + ".mpk",
mode: "zip"
},
files: [{
expand: true,
date: new Date(),
store: false,
cwd: "./dist/tmp/src",
src: [ "**/*" ]
}]
}
},
copy: {
distDeployment: {
files: [
{ dest: "./MxTestProject/deployment/web/widgets", cwd: "./dist/tmp/src/", src: ["**/*"], expand: true }
]
},
mpk: {
files: [
{ dest: "./MxTestProject/widgets", cwd: "./dist/" + pkg.version + "/", src: [ pkg.name + ".mpk"], expand: true }
]
},
source: {
files: [
{ dest: "./dist/tmp/src", cwd: "./src/", src: ["**/*", "!**/*.ts", "!**/*.tsx"], expand: true }
]
}
},
webpack: {
renderer: webpackConfig
},
clean: {
build: [
"./MxTestProject/deployment/web/widgets/" + pkg.name + "/*",
"./MxTestProject/widgets/" + pkg.name + ".mpk"
],
dist : "./dist/**/*"
},
xsltproc: {
options: {
stylesheet: "widget.xsl"
},
compile: {
files: {
"src/<%=pkgName%>/<%=name%>.auto.d.ts" : ["src/" + pkg.name + "/" + pkg.name + ".xml"]
}
}
}
});
grunt.loadNpmTasks("grunt-contrib-compress");
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-watch");
grunt.loadNpmTasks("grunt-contrib-copy");
grunt.loadNpmTasks("grunt-xsltproc");
grunt.loadNpmTasks("grunt-webpack");
grunt.registerTask("default", [ "clean build", "watch" ]);
grunt.registerTask(
"clean build",
"Compiles all the assets and copies the files to the build directory.", ["clean:build", "webpack" ,"compress:dist", "copy:mpk"]
);
grunt.registerTask("build", [ "clean build" ]);
};