modern.config.ts
2.61 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
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
import { appTools, defineConfig } from '@modern-js/app-tools';
import { tailwindcssPlugin } from '@modern-js/plugin-tailwindcss';
import { polyfillPlugin } from '@modern-js/plugin-polyfill';
function backward() {
window.document.dispatchEvent(new MessageEvent('message', { data: 'hardwareBackPress' }));
}
function openDebug() {
if (window.eruda) {
if (window.eruda.init) {
window.eruda.init();
}
}
}
// https://modernjs.dev/en/configure/app/usage
export default defineConfig({
runtime: {
router: {
supportHtml5History: false,
},
state: true,
},
dev: {
progressBar: { id: `🐹 ${process.env.APP_NAME}` },
host: process.env.XHOST,
port: Number(process.env.XPORT ?? 8080),
},
server: {
routes: {
main: ['/index.html', '/'],
},
},
html: {
tags: [
{
tag: 'script',
children: backward.toString(),
},
{
tag: 'script',
children: openDebug.toString(),
},
{
tag: 'script',
publicPath: '',
attrs: { src: '/public/sdk/eruda.min.js' },
head: true,
hash: true,
},
],
},
plugins: [
appTools({
bundler: 'experimental-rspack',
}),
tailwindcssPlugin(),
polyfillPlugin(),
],
performance: {
removeConsole: ['warn'],
},
output: {
assetPrefix: '../',
distPath: {
root: 'dist',
html: '',
},
},
source: {
globalVars: {
'process.env.MODERN_DOMAIN': process.env.MODERN_DOMAIN,
'process.env.MODERN_FILE_DOMAIN': process.env.MODERN_FILE_DOMAIN,
'process.env.MODERN_GRAY_TAG': process.env.MODERN_GRAY_TAG,
'process.env.MODERN_APP_ID': process.env.MODERN_APP_ID,
'process.env.MODERN_CALKEY': process.env.MODERN_CALKEY,
'process.env.MODERN_XSIGN': process.env.XSIGN,
'process.env.MODERN_ENV': process.env.MODERN_ENV,
},
include: [/[\\/]node_modules[\\/]filter-obj[\\/]/, /[\\/]node_modules[\\/]query-string[\\/]/],
},
tools: {
rspack: config => {
config.experiments = {
...config.experiments,
asyncWebAssembly: true,
rspackFuture: {
...config.experiments?.rspackFuture,
},
};
return config;
},
sass: {
// 不能修改
additionalData: '@import "@feewee/h5app-common/dist/es/styles/custom_theme.css";',
},
devServer: {
proxy: {
'/api/': {
target: process.env.API_HOST,
pathRewrite: { '^/api': '' },
},
'/api2/': {
target: process.env.FILE_HOST,
pathRewrite: { '^/api2/file': '' },
},
},
},
},
});