66 lines
1.4 KiB
JavaScript
66 lines
1.4 KiB
JavaScript
import { defineConfig } from 'vite';
|
|
import react from '@vitejs/plugin-react';
|
|
import legacy from '@vitejs/plugin-legacy';
|
|
import esbuild from 'esbuild';
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
const isProd = mode === 'production';
|
|
|
|
return {
|
|
oxc: {
|
|
target: 'es2015'
|
|
},
|
|
plugins: [
|
|
react(),
|
|
legacy({
|
|
targets: [
|
|
"defaults",
|
|
"Android >= 5",
|
|
"Chrome >= 60"
|
|
],
|
|
}),
|
|
{
|
|
name: 'downlevel-dev',
|
|
enforce: 'post',
|
|
async transform(code, id) {
|
|
if (mode === 'development' && /\.(mjs|js|ts|jsx|tsx)(?:[?#]|$)/.test(id)) {
|
|
try {
|
|
const res = await esbuild.transform(code, { target: 'chrome64', loader: 'jsx' });
|
|
return res.code;
|
|
} catch (e) {
|
|
return code;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
|
|
base: '/',
|
|
envDir: 'src',
|
|
envPrefix: 'ENV_',
|
|
|
|
server: {
|
|
host: '0.0.0.0',
|
|
port: process.env.PORT || 3015,
|
|
|
|
hmr: {
|
|
host: '192.168.1.35',
|
|
port: 3015,
|
|
protocol: 'ws',
|
|
clientPort: 3015,
|
|
}
|
|
},
|
|
|
|
optimizeDeps: {
|
|
include: ['jspdf'],
|
|
},
|
|
|
|
build: {
|
|
target: 'es2015',
|
|
minify: 'esbuild',
|
|
esbuild: {
|
|
drop: isProd ? ['console', 'debugger'] : [],
|
|
},
|
|
},
|
|
};
|
|
}); |