import { fileURLToPath, URL } from "node:url"; import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import vueDevTools from "vite-plugin-vue-devtools"; import Markdown from "unplugin-vue-markdown/vite"; import hljs from "highlight.js"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue({ include: [/\.vue$/, /\.md$/], }), vueDevTools(), Markdown({ // Optionen für Markdown-It (optional) markdownItOptions: { html: true, linkify: true, typographer: true, }, markdownItSetup(md) { // Syntax-Highlighting aktivieren md.set({ highlight: (str, lang) => { if (lang && hljs.getLanguage(lang)) { try { return `
${hljs.highlight(str, { language: lang }).value}
`;
} catch (__) {}
}
return `${md.utils.escapeHtml(str)}
`;
},
});
},
}),
],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
$: fileURLToPath(new URL("./docs", import.meta.url)),
},
},
build: {
rollupOptions: {
output: {
// Define the main output bundle (e.g., for your application)
entryFileNames: "[name]-[hash].js",
// Define the directory where the main bundle should be output
dir: "dist",
// Create a separate output bundle for your specific file
manualChunks(id) {
if (id.endsWith("src/config.ts")) {
return "config"; // This will create a separate bundle for config-[hash].js
}
},
},
},
},
});