Files
md-blog/vite.config.ts
T
klemek 2145c0f703
Deploy / Build (push) Successful in 1m42s
Deploy / Deploy to Stapler (push) Successful in 1m20s
tools: add 0.0.0.0 server
2026-07-19 16:05:29 +02:00

59 lines
1.9 KiB
TypeScript

import { fileURLToPath, URL } from "node:url";
import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import vueDevTools from "vite-plugin-vue-devtools";
import { plugin as mdPlugin, Mode } from "vite-plugin-markdown";
import obfuscatorPlugin from "vite-plugin-javascript-obfuscator";
import articlesConfig from "./articles/config.json";
// https://vite.dev/config/
export default ({ mode }: { mode: string }) => {
process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };
process.env.VITE_BASE_URL = articlesConfig.base_url;
process.env.VITE_APP_TITLE = articlesConfig.title;
process.env.VITE_APP_TITLE_NO_HTML = articlesConfig.title.replace(/(<([^>]+)>)/gi, "").trim();
process.env.VITE_APP_LANG = articlesConfig.lang;
process.env.VITE_CUSTOM_HEAD = articlesConfig.custom_head;
return defineConfig({
server: {
host: "0.0.0.0",
},
plugins: [
vue(),
vueDevTools(),
mdPlugin({ mode: [Mode.HTML] }),
obfuscatorPlugin({
include: [/.*\.md/],
options: { splitStrings: true, stringArrayThreshold: 1 },
}),
],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
"@views": fileURLToPath(new URL("./src/views", import.meta.url)),
"@lib": fileURLToPath(new URL("./src/lib", import.meta.url)),
"@articles": fileURLToPath(new URL("./articles", import.meta.url)),
"@interfaces": fileURLToPath(new URL("./src/interfaces.ts", import.meta.url)),
"@components": fileURLToPath(new URL("./src/components", import.meta.url)),
},
},
build: {
rolldownOptions: {
output: {
codeSplitting: {
groups: [
{
name: (moduleId: string) => (moduleId.includes("node_modules") ? "libs" : "app"),
maxSize: 1024 * 1024,
},
],
},
},
},
},
});
};