forked from open-source-labs/Docketeer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.react.config.js
86 lines (84 loc) · 1.89 KB
/
webpack.react.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
80
81
82
83
84
85
86
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');
const { isEmptyBindingElement } = require('typescript');
module.exports = {
mode: process.env.NODE_ENV,
resolve: {
extensions: ['.tsx', '.ts', '.jsx', '.js', '.json'],
mainFields: ['main', 'module', 'browser'],
fallback: {
child_process: false,
fs: false,
tls: false,
net: false,
path: false,
zlib: false,
http: false,
https: false,
stream: false,
crypto: false,
assert: false,
util: false,
os: false,
url: false,
buffer: false,
dns: false
}
},
entry: '/src/renderer/index.tsx',
output: {
path: path.join(__dirname, '/dist'),
// Taking our group of files and bundle them into Docketeer.js
filename: 'Docketeer.js'
},
target: ['electron-renderer', 'web'],
devtool: 'inline-source-map',
module: {
rules: [
{
test: /\.(jsx|js)$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env', '@babel/preset-react']
}
}
},
{
test: /\.(tsx|ts)$/,
exclude: /node_modules/,
loader: 'ts-loader'
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.(png|svg|jpg|jpeg|gif)$/i,
type: 'asset/resource',
}
]
},
devServer: {
static: {
directory: path.join(__dirname, '/src/renderer')
},
historyApiFallback: true,
compress: true,
hot: true,
port: 4000,
proxy: {
'/': {
target: 'http://localhost:3000/'
}
}
},
plugins: [
new HtmlWebpackPlugin({
template: './src/renderer/index.html'
}),
new webpack.IgnorePlugin({ resourceRegExp: /^pg-native$/ }),
]
};