Repository navigation
Expand file tree
/
Copy pathrspack.config.js
More file actions
82 lines (82 loc) · 2.03 KB
/
Copy pathrspack.config.js
File metadata and controls
82 lines (82 loc) · 2.03 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
const rspack = require('@rspack/core');
const refreshPlugin = require('@rspack/plugin-react-refresh');
const isDev = process.env.NODE_ENV === 'development';
/**
* @type {import('@rspack/cli').Configuration}
*/
module.exports = {
context: __dirname,
entry: './src/index.tsx',
resolve: {
symlinks: false,
extensions: ['...', '.ts', '.tsx', '.jsx'],
},
watchOptions: {
ignored: /[\\/](?:\.git[\\/]|node_modules[\\/](?!@momoyu-ink[\\/]))/,
},
performance: {
hints: false,
},
module: {
rules: [
{
test: /\.svg$/,
type: 'asset',
},
{
test: /\.(jsx?|tsx?)$/,
use: [
{
loader: 'builtin:swc-loader',
options: {
sourceMap: true,
jsc: {
parser: {
syntax: 'typescript',
tsx: true,
},
transform: {
react: {
runtime: 'automatic',
development: isDev,
refresh: isDev,
},
},
},
env: {
targets: ['chrome >= 87', 'edge >= 88', 'firefox >= 78', 'safari >= 14'],
},
},
},
],
},
],
},
devServer: {
client: {
overlay: false,
},
port: 6020,
hot: true,
liveReload: false,
webSocketServer: 'ws',
static: {
publicPath: '/',
directory: './',
},
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
'Access-Control-Allow-Headers':
'X-Requested-With, content-type, Authorization, cache-control, pragma, upgrade-insecure-requests, user-agent',
},
compress: true,
},
plugins: [
new rspack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
}),
isDev && new refreshPlugin(),
isDev && new rspack.HotModuleReplacementPlugin(),
].filter(Boolean),
};