-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
55 lines (51 loc) · 1.4 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
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const path = require('path');
const VENDOR_LIBS = [
'react', 'react-dom'
]
const config = {
'mode': 'development',
entry: {
bundle: './src/index.js',
vendor: VENDOR_LIBS
},
output: {
path: path.resolve(__dirname, 'build'),
filename: '[name].[chunkhash].js'
},
module: {
rules: [
{
exclude: /node_modules/,
loader: 'babel-loader',
test: /\.js$/
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: 'src/index.html'
}),
new CleanWebpackPlugin(
['build']
),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) //the NODE_ENV var comes from the package.json file where we can set it to "production". If not defined, webpack assumes not production. In production, it removes additional checks to optimize for speed and efficiency.
})
],
optimization: {
splitChunks: {
}
},
devServer: {
contentBase: './build',
historyApiFallback: true,
watchOptions: {
aggregateTimeout: 300,
poll: 1000
}
}
}
module.exports = config;