forked from mendix/listview-swipe
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
109 lines (100 loc) · 3.57 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
"use strict";
const webpack = require("webpack");
const webpackConfig = require("./webpack.config");
const webpackConfigRelease = {};
Object.assign(webpackConfigRelease, webpackConfig, {
devtool: false,
mode: "production",
// no minified code cause bundling issues.
optimization: { minimize: false }
});
module.exports = function(grunt) {
var pkg = grunt.file.readJSON("package.json");
grunt.initConfig({
watch: {
updateWidgetFiles: {
files: [ "./dist/tmp/src/**/*" ],
tasks: [ "webpack:develop", "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.widgetName + ".mpk",
mode: "zip"
},
files: [ {
expand: true,
date: new Date(),
store: false,
cwd: "./dist/tmp/src",
src: [ "**/*" ]
} ]
}
},
copy: {
distDeployment: {
files: [ {
dest: "./dist/MxTestProject/deployment/web/widgets",
cwd: "./dist/tmp/src/",
src: [ "**/*" ],
expand: true
} ]
},
mpk: {
files: [ {
dest: "./dist/MxTestProject/widgets",
cwd: "./dist/" + pkg.version + "/",
src: [ pkg.widgetName + ".mpk" ],
expand: true
} ]
},
source: {
files: [
{ dest: "./dist/tmp/src", cwd: "./src/", src: [ "**/*", "!**/*.ts", "!**/*.css" ], expand: true }
]
}
},
webpack: {
develop: webpackConfig,
release: webpackConfigRelease
},
clean: {
build: [
"./dist/" + pkg.version + "/" + pkg.widgetName + "/*",
"./dist/tmp/**/*",
"./dist/MxTestProject/deployment/web/widgets/" + pkg.widgetName + "/*",
"./dist/MxTestProject/widgets/" + pkg.widgetName + ".mpk"
]
},
checkDependencies: {
this: {}
}
});
grunt.loadNpmTasks("grunt-check-dependencies");
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-compress");
grunt.loadNpmTasks("grunt-contrib-copy");
grunt.loadNpmTasks("grunt-contrib-watch");
grunt.loadNpmTasks("grunt-webpack");
grunt.registerTask("default", [ "clean build", "watch" ]);
grunt.registerTask(
"clean build",
"Compiles all the assets and copies the files to the dist directory.",
[ "checkDependencies", "clean:build", "webpack:develop", "compress:dist", "copy:mpk" ]
);
grunt.registerTask(
"release",
"Compiles all the assets and copies the files to the dist directory. Minified without source mapping",
[ "checkDependencies", "clean:build", "webpack:release", "compress:dist", "copy:mpk" ]
);
grunt.registerTask("build", [ "clean build" ]);
};