-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathwebpack.config.js
69 lines (68 loc) · 1.55 KB
/
webpack.config.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
const path = require("path");
const glob = require("glob");
module.exports = {
entry: {
main: {
import: "./src/nationalarchives/all.mjs",
filename: "all.js",
library: {
name: "TNAFrontend",
type: "umd",
},
},
analytics: {
import: "./src/nationalarchives/analytics.mjs",
filename: "analytics.js",
library: {
name: "TNAFrontendAnalytics",
type: "umd",
},
},
"all+analytics": {
import: "./src/nationalarchives/all+analytics.mjs",
filename: "all+analytics.js",
library: {
name: "TNAFrontend",
type: "umd",
},
},
...glob
.sync("./src/nationalarchives/components/**/*.mjs")
.reduce((acc, path) => {
acc[
path
.replace(
/^(\.\/)?src\/nationalarchives\/components\/([\w\-]+\/)/,
"",
)
.replace(/.mjs$/, "")
] = {
import: `./${path}`.replace("././", "./"),
filename: `components/[name]/[name].js`,
};
return acc;
}, {}),
},
mode: "production",
module: {
rules: [
{
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"],
},
},
},
],
},
output: {
library: "TNAFrontend",
libraryTarget: "umd",
umdNamedDefine: true,
path: path.resolve(__dirname, "package/nationalarchives"),
},
devtool: "source-map",
};