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 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({ plugins: [vue(), vueDevTools(), mdPlugin({ mode: [Mode.HTML] })], base: process.env.VITE_BASE_URL, 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)), }, }, }) }