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.
48 lines
1.2 KiB
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"
|
|
})
|
|
]
|
|
})
|