You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Application-Web/vite.config.ts

48 lines
1.2 KiB

import {defineConfig} from "vite";
import react from '@vitejs/plugin-react';
import fs from "fs";
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js';
import svgr from "vite-plugin-svgr";
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,
}),
svgr({
include: "**/*.svg?react"
})
]
})