Skip to content
Snippets Groups Projects
vite.config.ts 1.6 KiB
Newer Older
import { optimizeLodashImports } from '@optimize-lodash/rollup-plugin'
import vue from '@vitejs/plugin-vue'
import { fileURLToPath, URL } from 'node:url'
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
import { visualizer } from 'rollup-plugin-visualizer'
import IconsResolver from 'unplugin-icons/resolver'
import Icons from 'unplugin-icons/vite'
import Components from 'unplugin-vue-components/vite'
import { defineConfig } from 'vite'
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
import webfontDownload from 'vite-plugin-webfont-dl'
import svgLoader from 'vite-svg-loader'
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed

export default defineConfig(({ mode }) => {
  return {
    base: mode === 'development' ? '/' : '/-/static/parcours/bundled/',
    clearScreen: false,
    publicDir: './src/public',
    plugins: [
      svgLoader(),
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
      Components({
        resolvers: [IconsResolver({ prefix: 'icon' })],
      }),
      Icons({ compiler: 'vue3' }),
      visualizer({
        emitFile: true,
        filename: 'stats.html',
      }),
      optimizeLodashImports(),
      webfontDownload([
        'https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap',
      ]),
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
    ],
    resolve: {
      alias: {
        '~': fileURLToPath(new URL('./src', import.meta.url)),
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
      },
    },
    build: {
      manifest: true,
      rollupOptions: {
        input: [
          './src/main.ts',
          './src/style.css',
        ],
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
        output: {
          assetFileNames: 'assets/[name].hash-[hash][extname]',
          chunkFileNames: '[name].hash-[hash].js',
          entryFileNames: '[name].hash-[hash].js',
          hashCharacters: 'hex',
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
          dir: './parcours/static/parcours/bundled/',
        },
      },
    },
  }
})