50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
import { defineConfig, type PluginOption } from "vite";
|
|
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
import { internalIpV4 } from "internal-ip";
|
|
import { less } from 'svelte-preprocess-less';
|
|
import { visualizer } from "rollup-plugin-visualizer";
|
|
import { join } from "path";
|
|
import monacoEditorPlugin, { IMonacoEditorOpts } from 'vite-plugin-monaco-editor';
|
|
|
|
const mobile = !!/android|ios/.exec(process.env.TAURI_ENV_PLATFORM);
|
|
const monacoEditorPluginDefault = ((monacoEditorPlugin as any).default) as (options: IMonacoEditorOpts) => any;
|
|
|
|
export default defineConfig(async () => ({
|
|
base: "./",
|
|
build: {
|
|
target: 'esnext'
|
|
},
|
|
plugins: [
|
|
visualizer({
|
|
template: 'treemap'
|
|
}) as PluginOption,
|
|
svelte({
|
|
preprocess: {
|
|
style: less(),
|
|
},
|
|
}),
|
|
monacoEditorPluginDefault({
|
|
languageWorkers: [ 'json' ]
|
|
})
|
|
],
|
|
|
|
clearScreen: false,
|
|
server : {
|
|
port : 1420,
|
|
strictPort: true,
|
|
host : mobile ? "0.0.0.0" : false,
|
|
hmr : mobile
|
|
? {
|
|
protocol: "ws",
|
|
host : await internalIpV4(),
|
|
port : 1421,
|
|
}
|
|
: undefined,
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@': join(__dirname, "src/"),
|
|
}
|
|
}
|
|
}));
|