forked from decred/decrediton
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwebpack.config.development.js
117 lines (100 loc) · 2.83 KB
/
webpack.config.development.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/* eslint-disable max-len */
/**
* Build config for development process that uses Hot-Module-Replacement
* https://webpack.github.io/docs/hot-module-replacement-with-webpack.html
*/
import webpack from "webpack";
import merge from "webpack-merge";
import baseConfig from "./webpack.config.base";
const port = process.env.PORT || 3000;
export default merge(baseConfig, {
mode: "development",
devtool: "inline-source-map",
entry: [
`webpack-hot-middleware/client?path=http://localhost:${port}/__webpack_hmr`,
"@babel/polyfill",
"./app/index"
],
output: {
publicPath: `http://localhost:${port}/dist/`
},
module: {
rules: [
{
test: /\.less$/,
use: [ {
loader: "style-loader"
}, {
loader: "css-loader",
options: {
sourceMap: true,
modules: true,
importLoaders: 1,
localIdentName: "[local]"
}
}, {
loader: "less-loader",
options: {
sourceMap: true,
noIeCompat: true,
strictMath: true
}
} ]
},
{
test: [ /\.woff(\?v=\d+\.\d+\.\d+)?$/, /\.woff2(\?v=\d+\.\d+\.\d+)?$/ ],
use: [ {
loader: "url-loader",
options: { limit: 10000, mimetype: "application/font-woff" }
} ]
},
{
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
use: [ {
loader: "url-loader",
options: { limit: 10000, mimetype: "application/octet-stream" }
} ]
},
{
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
use: [ { loader: "file-loader" } ]
},
{
test: /\.gif(\?v=\d+\.\d+\.\d+)?$/,
use: [ { loader: "file-loader" } ]
},
{
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
use: [ {
loader: "url-loader",
options: { limit: 10000, mimetype: "image/svg+xml" }
} ]
},
{
test: /\.(mp4)$/,
use: [ {
loader: "file-loader",
options: {
mimetype: "video/mp4"
}
} ]
},
]
},
plugins: [
// https://webpack.github.io/docs/hot-module-replacement-with-webpack.html
new webpack.HotModuleReplacementPlugin(),
// “If you are using the CLI, the webpack process will not exit with an error code by enabling this plugin.”
// https://webpack.js.org/plugins/no-emit-on-errors-plugin/
new webpack.NoEmitOnErrorsPlugin(),
// NODE_ENV should be production so that modules do not perform certain development checks
new webpack.DefinePlugin({
"process.env.NODE_ENV": JSON.stringify("development")
}),
new webpack.LoaderOptionsPlugin({
debug: true
})
],
// https://github.com/chentsulin/webpack-target-electron-renderer#how-this-module-works
target: "electron-renderer"
});