mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
127 lines
3.2 KiB
TypeScript
127 lines
3.2 KiB
TypeScript
import { defineConfig } from 'vite';
|
|
import viteTsconfigPaths from 'vite-tsconfig-paths';
|
|
import preact from '@preact/preset-vite';
|
|
import viteImagemin from 'vite-plugin-imagemin';
|
|
import { visualizer } from 'rollup-plugin-visualizer';
|
|
|
|
export default defineConfig(({ command, mode }) => {
|
|
// standalone build for development - runs the server
|
|
if (command === 'serve') {
|
|
console.log('Building for standalone');
|
|
return {
|
|
plugins: [preact(), viteTsconfigPaths(), visualizer()],
|
|
server: {
|
|
open: true,
|
|
port: mode === 'production' ? 4173 : 3000,
|
|
proxy: {
|
|
'/rest': 'http://localhost:3080',
|
|
'/api': {
|
|
target: 'http://localhost:3080',
|
|
changeOrigin: true,
|
|
secure: false
|
|
},
|
|
'/es': {
|
|
target: 'http://localhost:3080',
|
|
changeOrigin: true,
|
|
secure: false
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
// production build, both for hosted and building the firmware
|
|
if (command === 'build') {
|
|
console.log('Building for production, mode ' + mode);
|
|
return {
|
|
plugins: [
|
|
preact(),
|
|
viteTsconfigPaths(),
|
|
{
|
|
...viteImagemin({
|
|
verbose: false,
|
|
gifsicle: {
|
|
optimizationLevel: 7,
|
|
interlaced: false
|
|
},
|
|
optipng: {
|
|
optimizationLevel: 7
|
|
},
|
|
mozjpeg: {
|
|
quality: 20
|
|
},
|
|
pngquant: {
|
|
quality: [0.8, 0.9],
|
|
speed: 4
|
|
},
|
|
svgo: {
|
|
plugins: [
|
|
{
|
|
name: 'removeViewBox'
|
|
},
|
|
{
|
|
name: 'removeEmptyAttrs',
|
|
active: false
|
|
}
|
|
]
|
|
}
|
|
}),
|
|
enforce: 'pre'
|
|
}
|
|
],
|
|
|
|
build: {
|
|
outDir: mode === 'hosted' ? 'dist' : 'build',
|
|
reportCompressedSize: false,
|
|
chunkSizeWarningLimit: 1024,
|
|
sourcemap: false,
|
|
manifest: false,
|
|
minify: 'terser',
|
|
terserOptions: {
|
|
parse: {
|
|
// parse options
|
|
},
|
|
compress: {
|
|
// compress options
|
|
passes: 4,
|
|
arrows: true,
|
|
drop_console: true,
|
|
sequences: true
|
|
},
|
|
mangle: {
|
|
// mangle options
|
|
eval: true,
|
|
properties: {
|
|
// mangle property options
|
|
}
|
|
},
|
|
format: {
|
|
// format options (can also use `output` for backwards compatibility)
|
|
},
|
|
sourceMap: {
|
|
// source map options
|
|
},
|
|
ecma: 5,
|
|
enclose: false,
|
|
keep_classnames: false,
|
|
keep_fnames: false,
|
|
ie8: false,
|
|
module: false,
|
|
nameCache: null,
|
|
safari10: false,
|
|
toplevel: false
|
|
},
|
|
rollupOptions: {
|
|
// Ignore "use client" waning since we are not using SSR
|
|
onwarn(warning, warn) {
|
|
if (warning.code === 'MODULE_LEVEL_DIRECTIVE' && warning.message.includes(`"use client"`)) {
|
|
return;
|
|
}
|
|
warn(warning);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
});
|