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_APP_SIGNATURE = articlesConfig['signature'] 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)), }, }, }) }