-
Notifications
You must be signed in to change notification settings - Fork 6
/
webpack.config.dev.cjs
93 lines (82 loc) · 2.22 KB
/
webpack.config.dev.cjs
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
var path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const isDevBuild = process.env.NODE_ENV !== 'production';
module.exports = {
// https://webpack.js.org/concepts/mode/
mode: isDevBuild ? 'development' : 'production',
// Context is the path for resolving `entry`, loaders, and other files in this config file.
context: path.join(process.cwd(), 'src'),
entry: 'demo-index.js',
output: {
path: path.join(process.cwd(), 'dist'),
filename: 'demo.bundle.js',
},
devtool: isDevBuild ? 'eval-source-map' : 'source-map',
resolve: {
modules: [path.resolve('./node_modules'), path.resolve('./src')]
},
/* The value after the colon depends directly on “output.libraryTarget”. For example, if the
target is 'amd', then this value is the RequireJS module name. If target is 'var', then the
value is the global (window) name. */
// externals: {
// react: 'React',
// 'react-dom': 'ReactDOM'
// },
plugins: (function () {
// When the Webpack CLI is called with the `-p` flag, it will cause the uglifyjs-webpack-plugin
// automatically be loaded and used; no need to explicity do that here.
const plugins = [];
if (isDevBuild) {
plugins.push(new HtmlWebpackPlugin());
}
return plugins;
})(),
module: {
rules: [
// {
// test: /\.jsx?$/,
// enforce: 'pre',
// use: [
// {
// loader: require.resolve('eslint-loader')
// }
// ],
// include: [path.resolve(process.cwd(), 'src')]
// },
{
/* CSS loaders */
test: /\.css$/,
use: [
{
loader: 'style-loader' // creates style nodes from JS strings
},
{
loader: 'css-loader', // translates CSS into CommonJS
options: {
sourceMap: true
}
}
]
},
{
test: /\.jsx?$/,
include: [path.resolve(process.cwd(), 'src')],
loader: require.resolve('babel-loader'),
options: {
/* This is a feature of babel-loader that will allow for faster rebuilds by
caching results in ./node_modules/.cache/babel-loader/. */
cacheDirectory: true
}
}
]
},
devServer: {
contentBase: path.join(process.cwd(), 'dist'),
compress: true,
host: 'localhost',
port: 8080,
noInfo: true,
open: true,
overlay: true
}
};