-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
webpack.config.js
133 lines (123 loc) · 3.25 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
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: process.env.NODE_ENV || 'development',
entry: './src/renderer/index.tsx',
target: 'electron-renderer',
output: {
path: path.resolve(__dirname, 'dist/renderer'),
filename: 'renderer.js',
},
module: {
rules: [
{
test: /\.(js|jsx|ts|tsx)$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: {
presets: [
['@babel/preset-env', { targets: { electron: '32' } }],
'@babel/preset-react',
['@babel/preset-typescript', { isTSX: true, allExtensions: true }]
]
}
}
]
},
{
test: /\.s?css$/,
use: ['style-loader', 'css-loader', 'postcss-loader'],
},
// Add this block for image file support
{
test: /\.(png|jpe?g|gif|svg)$/i,
type: 'asset/resource', // Use the asset module for managing images
},
],
},
resolve: {
extensions: ['.js', '.jsx', '.ts', '.tsx',],
},
plugins: [
new HtmlWebpackPlugin({
template: path.join(__dirname, 'public', 'index.html'),
}),
],
devServer: {
static: {
directory: path.resolve(__dirname, 'public'),
},
port: 8080,
proxy: [
{
context: ['/'],
target: 'http://localhost:3000',
},
],
hot: true,
},
};
// const path = require('path');
// const HtmlWebpackPlugin = require('html-webpack-plugin');
// module.exports = {
// // Set the mode to development by default or use NODE_ENV
// mode: process.env.NODE_ENV || 'development',
// entry: './src/renderer/index.tsx',
// target: 'electron-renderer',
// // Specify where webpack should output the bundled files
// output: {
// path: path.resolve(__dirname, 'dist/renderer'), // target folder
// filename: 'renderer.js', // output js file name
// },
// // Define modules
// module: {
// rules: [
// {
// test: /\.(js|jsx)$/,
// exclude: /node_modules/,
// loader: 'babel-loader',
// options: {
// presets: ['@babel/env', '@babel/react'],
// },
// },
// {
// test: /\.(ts|tsx)$/,
// exclude: /node_modules/,
// use: 'ts-loader',
// },
// {
// test: /\.s?css$/,
// use: ['style-loader', 'css-loader', 'postcss-loader'],
// },
// ],
// },
// resolve: {
// extensions: ['.js', '.jsx', '.ts', '.tsx'],
// },
// // Configure plugins
// plugins: [
// // Generate an HTML file that includes all webpack bundles
// new HtmlWebpackPlugin({
// template: path.join(__dirname, 'public', 'index.html'),
// }),
// ],
// // Configure the development server
// devServer: {
// // serve static files from the 'dist' directory
// static: {
// directory: path.resolve(__dirname, 'public'),
// },
// // Set the port for the dev server
// port: 8080,
// // Configure proxy for API reques
// proxy: [
// {
// context: ['/'],
// target: 'http://localhost:3000',
// },
// ],
// hot: true, // Enables hot reloading
// },
// }