83 lines
2.2 KiB
JavaScript
83 lines
2.2 KiB
JavaScript
import { fileURLToPath, URL } from 'node:url';
|
|
|
|
import { PrimeVueResolver } from '@primevue/auto-import-resolver';
|
|
import tailwindcss from '@tailwindcss/vite';
|
|
import vue from '@vitejs/plugin-vue';
|
|
import { visualizer } from 'rollup-plugin-visualizer'; // bundle analyzer
|
|
import AutoImport from 'unplugin-auto-import/vite'; // auto import Vue composables
|
|
import Components from 'unplugin-vue-components/vite';
|
|
import viteCompression from 'vite-plugin-compression'; // 🔥 compressão gzip/brotli
|
|
import { defineConfig } from 'vitest/config';
|
|
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig({
|
|
test: {
|
|
environment: 'node',
|
|
include: ['src/**/*.spec.js'],
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
}
|
|
},
|
|
|
|
plugins: [
|
|
vue(),
|
|
|
|
tailwindcss(),
|
|
|
|
// Auto import de APIs do Vue (ref, computed, onMounted, etc)
|
|
AutoImport({
|
|
imports: ['vue'],
|
|
dts: 'src/auto-imports.d.ts' // gera tipagem automática
|
|
}),
|
|
|
|
// Auto import de componentes do PrimeVue
|
|
Components({
|
|
resolvers: [PrimeVueResolver()]
|
|
}),
|
|
|
|
// Visualizador de bundle (gera stats.html no build)
|
|
visualizer({
|
|
filename: 'dist/stats-before.html',
|
|
open: true,
|
|
gzipSize: true,
|
|
brotliSize: true
|
|
}),
|
|
|
|
// 🔥 Gzip e Brotli
|
|
viteCompression({ algorithm: 'gzip', ext: '.gz', threshold: 1024 }),
|
|
viteCompression({ algorithm: 'brotliCompress', ext: '.br', threshold: 1024 })
|
|
],
|
|
|
|
resolve: {
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
}
|
|
},
|
|
|
|
css: {
|
|
preprocessorOptions: {
|
|
scss: {
|
|
api: 'modern-compiler'
|
|
}
|
|
}
|
|
},
|
|
|
|
optimizeDeps: {
|
|
include: ['pdfmake/build/pdfmake', 'pdfmake/build/vfs_fonts']
|
|
},
|
|
|
|
build: {
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
vue: ['vue'],
|
|
primevue: ['primevue'],
|
|
chart: ['chart.js'],
|
|
supabase: ['@supabase/supabase-js'],
|
|
editor: ['quill']
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|