-
Notifications
You must be signed in to change notification settings - Fork 0
/
GruntFile.js
49 lines (48 loc) · 1.38 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
const path = require("path");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const WrapperPlugin = require("wrapper-webpack-plugin");
const resolve = require("@rollup/plugin-node-resolve");
const { terser } = require("rollup-plugin-terser");
module.exports = grunt => {
grunt.initConfig({
webpack: {
myConfig: {
mode: "production",
entry: {
pfe: "./src/pfe.js"
},
output: {
path: path.resolve(__dirname, "dist"),
filename: "[name]-webpack.js",
libraryTarget: "umd"
},
plugins: [
// Cleans dist directory on each build
new CleanWebpackPlugin(),
// Add header and footer to each bundle
new WrapperPlugin({
header: 'window.addEventListener("DOMContentLoaded", function() {',
footer: "});"
})
]
}
},
// Doesn't work exactly like webpack (have to store PFE elements under pfe namespace).
// TODO: Figure out a backdoor trick.
rollup: {
pfe: {
options: {
plugins: [resolve(), terser()],
format: "umd",
name: "pfe"
},
files: {
"./dist/pfe-rollup.js": "./src/pfe.js"
}
}
}
});
grunt.loadNpmTasks("grunt-webpack");
grunt.loadNpmTasks("grunt-rollup");
grunt.registerTask("default", ["webpack", "rollup"]);
};