neptune-privacy/vite.config.ts

86 lines
1.8 KiB
TypeScript

import path from 'node:path'
import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import wasm from 'vite-plugin-wasm'
import topLevelAwait from 'vite-plugin-top-level-await'
// https://vite.dev/config/
export default defineConfig({
plugins: [
vue(),
tailwindcss(),
wasm(),
topLevelAwait(),
AutoImport({
imports: [
{
'vue-router': ['useRoute', 'useRouter'],
},
{
'vue-i18n': ['useI18n'],
},
],
dts: 'src/auto-imports.d.ts',
vueTemplate: true,
eslintrc: {
enabled: true,
filepath: './.eslintrc-auto-import.json',
},
}),
Components({
dts: 'src/components.d.ts',
dirs: ['src/components'],
extensions: ['vue'],
deep: true,
directoryAsNamespace: false,
}),
],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
server: {
port: 5173,
strictPort: true,
host: '0.0.0.0',
hmr: {
protocol: 'ws',
host: 'localhost',
port: 5183,
},
},
// Prevent vite from obscuring rust errors
clearScreen: false,
envPrefix: ['VITE_', 'TAURI_'],
assetsInclude: ['**/*.wasm'],
optimizeDeps: {
exclude: ['@neptune/native'],
},
build: {
rollupOptions: {
external: ['@neptune/native'],
output: {
format: 'es',
},
},
// Tauri uses Chromium on Windows and WebKit on macOS and Linux
target: process.env.TAURI_ENV_PLATFORM == 'windows' ? 'chrome105' : 'safari13',
minify: !process.env.TAURI_ENV_DEBUG ? 'esbuild' : false,
// Produce sourcemaps for debug builds
sourcemap: !!process.env.TAURI_ENV_DEBUG,
},
})