Files
admin_hura_8/vite.config.ts
2025-11-20 13:10:28 +07:00

73 lines
1.9 KiB
TypeScript

import { defineConfig } from "vite"
import injectHTML from "vite-plugin-html-inject"
import { resolve } from "node:path"
import fs from "node:fs"
import tailwindcss from "@tailwindcss/vite"
import { fileURLToPath } from "node:url"
const __dirname = fileURLToPath(new URL(".", import.meta.url))
const getHtmlFiles = (dir: string): string[] => {
let results: string[] = []
const list = fs.readdirSync(dir)
list.forEach((file) => {
file = resolve(dir, file)
const stat = fs.statSync(file)
if (stat && stat.isDirectory()) {
if (file.endsWith("/partials")) {
return
}
results = results.concat(getHtmlFiles(file))
} else if (file.endsWith(".html")) {
results.push(file)
}
})
return results
}
// Normalize the paths to ensure consistent forward slashes
const normalizePath = (path: string): string => path.split(resolve(__dirname, "src")).join("").replace(/\\/g, "/")
// Use normalizePath function to process the paths correctly
const htmlFiles = getHtmlFiles("src")
const input = Object.fromEntries(
htmlFiles.map((file) => [normalizePath(file).replace(".html", "").replace(/^\//, ""), file])
)
const removecors = () => {
return {
name: "remove-cors",
transformIndexHtml: {
order: "post" as const,
handler(html: string) {
return html.replace(/crossorigin\s*/g, "")
},
},
}
}
export default defineConfig({
base: "",
server: {
open: "/",
},
publicDir: "../public",
plugins: [injectHTML(), removecors(), tailwindcss()],
root: "src",
optimizeDeps: {
include: ["filepond", "filepond-plugin-image-preview"],
},
build: {
outDir: "../html",
emptyOutDir: true,
rollupOptions: {
input,
output: {
entryFileNames: `assets/script/[name].js`,
chunkFileNames: `assets/script/[name].js`,
assetFileNames: `assets/script/[name].[ext]`,
},
},
},
})