import { fileURLToPath, URL } from 'url'; import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import markdown from 'vite-plugin-md'; import svgLoader from 'vite-svg-loader'; import { VitePWA } from 'vite-plugin-pwa'; // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue({ include: [/\.vue$/, /\.md$/], }), vueJsx(), markdown(), svgLoader(), VitePWA({ registerType: 'prompt', strategies: 'generateSW', manifest: { name: 'IT Tools', description: 'Aggregated set of useful tools for developers.', display: 'standalone', lang: 'fr-FR', start_url: '/?utm_source=pwa&utm_medium=pwa', orientation: 'any', theme_color: '#18a058', background_color: '#f1f5f9', icons: [ { src: '/favicon-16x16.png', type: 'image/png', sizes: '16x16', }, { src: '/favicon-32x32.png', type: 'image/png', sizes: '32x32', }, { src: '/android-chrome-192x192.png', sizes: '192x192', type: 'image/png', }, { src: '/android-chrome-512x512.png', sizes: '512x512', type: 'image/png', purpose: 'any maskable', }, ], }, }), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, define: { 'import.meta.env.PACKAGE_VERSION': JSON.stringify(process.env.npm_package_version), }, });