import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import { quasar, transformAssetUrls } from '@quasar/vite-plugin' import { VitePWA } from 'vite-plugin-pwa' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue({ template: { transformAssetUrls }, }), quasar({ sassVariables: 'src/style/quasar-variables.sass', }), vueJsx(), VitePWA({ registerType: 'autoUpdate', injectRegister: 'auto', workbox: { cleanupOutdatedCaches: true, globPatterns: ['**/*.*'], }, includeAssets: ['icons/safari-pinned-tab.svg'], manifest: { name: 'BMA-Checkin', short_name: 'EHR Checkin', theme_color: '#ffffff', icons: [ { src: 'icons/android-chrome-192x192.png', sizes: '192x192', type: 'image/png', }, { src: 'icons/android-chrome-512x512.png', sizes: '512x512', type: 'image/png', }, { src: 'icons/android-chrome-512x512.png', sizes: '512x512', type: 'image/png', purpose: ['any', 'maskable'], }, ], }, }), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, build: { target: 'esnext', }, server: { port: 3011, }, optimizeDeps: { include: ['esri-loader'], }, })