-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
74 lines (67 loc) · 1.53 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
70
71
72
73
74
/*
webpack.config.js
The configuration file for the webpack bundler. The bundling was originally for both frontend and backend
packages but the backend is commented out. Node.js source code is executed directly without bundling first.
Frontend code requires bundling to allow for minification, ES6->CommonJS transpiling and adding of react libraries.
*/
const path = require('path');
const HtmlWebpackPlugin = require("html-webpack-plugin");
/*
const backend = {
entry: './src/backend/server.js',
target: 'node',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'server.js'
},
optimization: {
minimize: false
},
devServer: {
contentBase: path.join(__dirname, 'dist'),
filename: 'server.js',
port: 3000,
}
};
*/
const frontend = {
entry: './src/frontend/index.js',
target: 'web',
output: {
path: path.resolve(__dirname, 'public'),
filename: 'client.js'
},
optimization: {
minimize: true
},
devtool: "eval-cheap-module-source-map",
module: {
rules: [
{
test: /\.js?$/,
exclude: /node_modules/,
use: ["babel-loader"]
},
{
test: /\.css$/,
use: ["style-loader", "css-loader"]
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
loader: 'file-loader'
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: "./src/frontend/index.html"
})
],
resolve: {
fallback: {
"crypto": false
}
}
};
module.exports = frontend;
// module.exports = [frontend, backend];