-
Notifications
You must be signed in to change notification settings - Fork 5
/
webpack.config.js
79 lines (77 loc) · 1.75 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
75
76
77
78
79
const path = require("path");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
let node_modules = path.join(__dirname, "node_modules");
(rootAssetPath = "./assets"),
(extractSASS = new MiniCssExtractPlugin({
filename: "[name].css",
})),
(buildPath = path.join(__dirname, "static")),
(manifestPath = path.join(buildPath, "manifest.json"));
module.exports = {
entry: {
app_js: ["./js/app.js"],
app_css: [rootAssetPath + "/scss/app.scss"],
},
output: {
path: buildPath,
publicPath: "/static/",
filename: "[name].js",
chunkFilename: "[id].chunk",
},
resolve: {
extensions: [".js", ".scss", ".css"],
modules: [node_modules],
},
resolveLoader: {
modules: [node_modules],
},
module: {
rules: [
{
test: /\.(js|jsx)$/i,
exclude: /node_modules/,
use: [
{
loader: "babel-loader",
options: { presets: ["@babel/preset-react"] },
},
],
},
{
test: /(\.scss|\.css)$/i,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader",
},
{
loader: "sass-loader",
},
],
},
{
test: /\.(jpe?g|png|gif|eot|ttf|woff|woff2|otf|svg([\?]?.*))$/i,
use: [
{
loader:
"file-loader?context=" +
rootAssetPath +
"&name=[path][name].[ext]",
},
{
loader:
"image-webpack-loader?bypassOnDebug&optimizationLevel=7&interlaced=false",
},
],
},
],
},
watchOptions: {
aggregateTimeout: 300,
poll: 500,
ignored: '**/node_modules',
},
plugins: [
extractSASS,
],
};