| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { defineConfig } from "vite";
- import vue from "@vitejs/plugin-vue";
- import path from "path";
- import prerender from "vite-plugin-prerender";
- export default defineConfig(({ mode }) => {
- console.log(`🔨 Vite build mode: ${mode}`);
- return {
- plugins: [
- vue(),
- prerender({
- // REQUIRED: The path to the built app to prerender.
- staticDir: path.join(__dirname, 'dist'),
- // The routes to render.
- routes: [
- '/',
- '/en/', '/me/', '/ru/', '/ua/',
- '/en/portfolio', '/me/portfolio', '/ru/portfolio', '/ua/portfolio',
- '/en/about', '/me/about', '/ru/about', '/ua/about',
- '/en/contact', '/me/contact', '/ru/contact', '/ua/contact'
- ],
- renderer: new prerender.PuppeteerRenderer({
- renderAfterDocumentEvent: 'render-event',
- injectProperty: '__PRERENDER_INJECTED',
- inject: {
- foo: 'bar'
- },
- renderAfterTime: 2000,
- headless: true,
- args: ['--no-sandbox', '--disable-setuid-sandbox']
- })
- })
- ],
- resolve: {
- alias: {
- "@": path.resolve(__dirname, "./src"),
- },
- },
- build: {
- outDir: 'dist',
- chunkSizeWarningLimit: 1000,
- cssMinify: true,
- minify: 'esbuild',
- rollupOptions: {
- output: {
- manualChunks: {
- 'three-vendor': ['three'],
- 'ui-vendor': ['lucide-vue-next', '@vueuse/core'],
- }
- }
- }
- },
- esbuild: {
- legalComments: 'none',
- target: 'esnext',
- },
- test: {
- globals: true,
- environment: "jsdom",
- },
- });
|