SPB Git forge

spb/uqo-chat

Public
14commits 1branches 0releases
1.4 MBsize
maindefault branch
17 days agolast push
Python 64.6% TypeScript 33.7% CSS 0.8%
2.4 KB · 70 lines typescript
Raw Blame History
1import { fileURLToPath, URL } from 'node:url';2import { defineConfig } from 'vite';3import react from '@vitejs/plugin-react';4import { VitePWA } from 'vite-plugin-pwa';56export default defineConfig({7  resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } },8  plugins: [9    react(),10    VitePWA({11      registerType: 'autoUpdate',12      includeAssets: ['icons/*.png', 'icons/*.svg', 'uqo-logo.png', 'uqo-logo-white.png'],13      manifest: {14        name: 'UQO-Chat',15        short_name: 'UQO-Chat',16        description: 'Tuteur IA — IMM1003 · IMM1033 (UQO)',17        lang: 'fr-CA',18        display: 'standalone',19        start_url: '/',20        scope: '/',21        theme_color: '#0F6180',22        background_color: '#FFFFFF',23        icons: [24          { src: '/icons/icon-192.png', sizes: '192x192', type: 'image/png' },25          { src: '/icons/icon-512.png', sizes: '512x512', type: 'image/png' },26          { src: '/icons/icon-maskable-512.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' },27        ],28      },29      workbox: {30        navigateFallback: '/index.html',31        navigateFallbackDenylist: [/^\/api\//],32        globPatterns: ['**/*.{js,css,html,svg,png,woff2}'],33        maximumFileSizeToCacheInBytes: 6 * 1024 * 1024,34        runtimeCaching: [35          {36            urlPattern: /\/api\/v1\/(conversations|courses|me)(\?.*)?$/,37            handler: 'NetworkFirst',38            options: { cacheName: 'api-read', networkTimeoutSeconds: 4, expiration: { maxEntries: 60, maxAgeSeconds: 86400 } },39          },40          {41            urlPattern: /\/api\/v1\/conversations\/[a-f0-9]+$/,42            handler: 'NetworkFirst',43            options: { cacheName: 'api-conv', networkTimeoutSeconds: 4, expiration: { maxEntries: 40, maxAgeSeconds: 86400 } },44          },45          {46            urlPattern: /^https:\/\/fonts\.(googleapis|gstatic)\.com\//,47            handler: 'CacheFirst',48            options: { cacheName: 'fonts', expiration: { maxEntries: 20, maxAgeSeconds: 31536000 } },49          },50        ],51      },52    }),53  ],54  server: {55    port: 5173,56    proxy: { '/api': { target: 'http://127.0.0.1:8190', changeOrigin: true } },57  },58  build: {59    sourcemap: false,60    rollupOptions: {61      output: {62        manualChunks: {63          markdown: ['react-markdown', 'remark-gfm', 'remark-math', 'rehype-katex'],64          charts: ['recharts'],65        },66      },67    },68  },69});70