-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.config.mjs
More file actions
85 lines (83 loc) · 2.67 KB
/
Copy pathwebpack.config.mjs
File metadata and controls
85 lines (83 loc) · 2.67 KB
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
import path from "path";
import { fileURLToPath } from "url";
import HtmlWebpackPlugin from "html-webpack-plugin";
import CopyWebpackPlugin from 'copy-webpack-plugin';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
export default [
{
// ✅ Electron Main Process
target: "electron-main",
mode: "development",
entry: "./src/main/main.ts",
output: {
path: path.resolve(__dirname, "dist"),
filename: "main.cjs",
library: { type: "commonjs2" }
},
externals: {
"fs": "commonjs2 fs",
"path": "commonjs2 path",
"electron": "commonjs2 electron",
'better-sqlite3': 'commonjs better-sqlite3',
},
experiments: { outputModule: false },
resolve: { extensions: [".ts", ".js"] },
module: {
rules: [{ test: /\.ts$/, use: "ts-loader", exclude: /node_modules/ }]
},
plugins: [
new CopyWebpackPlugin({
patterns: [
{
from: path.resolve(__dirname, 'src/main/database/database.sql'),
to: path.resolve(__dirname, 'dist/static/schema.sql'),
noErrorOnMissing: true,
},
{
from: path.resolve(__dirname, 'src/static'),
to: path.resolve(__dirname, 'dist/static'),
noErrorOnMissing: false,
}
],
}),
],
},
{
// ✅ Preload Script (Bridge Between Renderer and Main)
target: "electron-preload",
mode: "development",
entry: "./src/preload/preload.ts",
output: {
path: path.resolve(__dirname, "dist"),
filename: "preload.js"
},
resolve: { extensions: [".ts", ".js"] },
module: {
rules: [{ test: /\.ts$/, use: "ts-loader", exclude: /node_modules/ }]
}
},
{
// ✅ React Renderer Process
target: "web",
mode: "development",
entry: "./src/renderer/index.tsx",
output: {
path: path.resolve(__dirname, "dist"),
filename: "renderer.js"
},
resolve: { extensions: [".ts", ".tsx", ".js"] },
module: {
rules: [{ test: /\.(ts|tsx)$/, use: "ts-loader", exclude: /node_modules/ }]
},
plugins: [
new HtmlWebpackPlugin({
template: "./src/renderer/index.html"
})
],
devServer: {
static: "./dist",
hot: true
}
}
];