Files
flug/vite.config.js
T

75 lines
2.0 KiB
JavaScript
Raw Normal View History

2026-04-03 20:07:14 -07:00
import { defineConfig } from "vite";
import { resolve } from "path";
import fs from "fs";
function getInputs() {
const inputs = {
main: resolve(__dirname, "index.html"),
};
const entries = fs.readdirSync(__dirname, { withFileTypes: true });
for (const entry of entries) {
if (
entry.isDirectory() &&
entry.name !== "node_modules" &&
entry.name !== "dist" &&
!entry.name.startsWith(".")
) {
const indexPath = resolve(__dirname, entry.name, "index.html");
if (fs.existsSync(indexPath)) {
inputs[entry.name] = indexPath;
}
}
}
return inputs;
}
export default defineConfig({
2026-05-19 22:48:39 -07:00
plugins: [
{
2026-05-29 21:26:22 -07:00
name: "copy-assets",
2026-05-19 22:48:39 -07:00
writeBundle() {
2026-05-29 21:26:22 -07:00
function copyDir(srcDir, destDir, skipFile) {
const entries = fs.readdirSync(srcDir, { withFileTypes: true });
for (const entry of entries) {
if (skipFile && entry.name === skipFile) continue;
const src = resolve(srcDir, entry.name);
const dest = resolve(destDir, entry.name);
if (entry.isDirectory()) {
fs.mkdirSync(dest, { recursive: true });
copyDir(src, dest);
} else {
fs.mkdirSync(destDir, { recursive: true });
fs.copyFileSync(src, dest);
}
}
}
2026-05-19 22:48:39 -07:00
const entries = fs.readdirSync(__dirname, { withFileTypes: true });
for (const entry of entries) {
if (
entry.isDirectory() &&
entry.name !== "node_modules" &&
entry.name !== "dist" &&
!entry.name.startsWith(".")
) {
const dirPath = resolve(__dirname, entry.name);
2026-05-29 21:26:22 -07:00
const indexPath = resolve(dirPath, "index.html");
if (!fs.existsSync(indexPath)) continue;
2026-05-19 22:48:39 -07:00
2026-05-29 21:26:22 -07:00
const destDir = resolve(__dirname, "dist", entry.name);
copyDir(dirPath, destDir, "index.html");
2026-05-19 22:48:39 -07:00
}
}
},
},
],
2026-04-03 20:07:14 -07:00
build: {
rollupOptions: {
input: getInputs(),
},
},
});