const { resolve } = require("path"); import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import copy from "rollup-plugin-copy"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue()], resolve: { alias: { "~": resolve(__dirname, "./node_modules/"), }, }, build: { manifest: true, outDir: "static", rollupOptions: { plugins: [ copy({ targets: [ // https://github.com/vitejs/vite/issues/1618#issuecomment-764579557 { src: "./node_modules/@fortawesome/fontawesome-free/webfonts/**/*", dest: "static/webfonts", }, { src: "./node_modules/@fontsource/lato/files/**/*400*-normal*", dest: "static/webfonts", }, { src: "./node_modules/@fontsource/lato/files/**/*700*-normal*", dest: "static/webfonts", }, { src: "./node_modules/@fontsource/raleway/files/**/*400*-normal*", dest: "static/webfonts", }, { src: "./assets/img/**", dest: "static/img", }, ], hook: "writeBundle", }), ], output: { manualChunks: { echarts: ["echarts", "zrender"], }, }, input: { index: resolve(__dirname, "assets/js/index.js"), page: resolve(__dirname, "assets/js/page.js"), setup: resolve(__dirname, "assets/js/setup.js"), settings: resolve(__dirname, "assets/js/settings.js"), challenges: resolve(__dirname, "assets/js/challenges.js"), scoreboard: resolve(__dirname, "assets/js/scoreboard.js"), notifications: resolve(__dirname, "assets/js/notifications.js"), teams_public: resolve(__dirname, "assets/js/teams/public.js"), teams_private: resolve(__dirname, "assets/js/teams/private.js"), teams_list: resolve(__dirname, "assets/js/teams/list.js"), users_public: resolve(__dirname, "assets/js/users/public.js"), users_private: resolve(__dirname, "assets/js/users/private.js"), users_list: resolve(__dirname, "assets/js/users/list.js"), main: resolve(__dirname, "assets/scss/main.scss"), }, }, }, });