import {defineConfig} from "vite"; import react from '@vitejs/plugin-react'; import fs from "fs"; import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'; function resolve_entries(dirname: string): [string, string][] { //exclude assets if (dirname == "front/assets" || dirname == "front/style") { return [] } return fs.readdirSync(dirname).flatMap(file_name => { if (fs.lstatSync(`${dirname}/${file_name}`).isFile()) { return [[`${dirname}/${file_name}`, `${dirname}/${file_name}`]] } else { return resolve_entries(`${dirname}/${file_name}`) } }) } export default defineConfig({ root: 'front', base: '/front', envDir: '..', build: { target: 'es2021', assetsDir: '', outDir: "../dist", manifest: true, rollupOptions: { input: Object.fromEntries(resolve_entries("front")), preserveEntrySignatures: "allow-extension", } }, plugins: [ react(), cssInjectedByJsPlugin({ relativeCSSInjection: true, }) ] })