Files
md-blog/vite.config.ts
T
klemek f92baf3b82
Deploy / Build (push) Has been cancelled
Deploy / Deploy to Stapler (push) Has been cancelled
Lint / ESLint (push) Has been cancelled
Lint / Oxlint (push) Has been cancelled
Lint / TypeScript (push) Has been cancelled
feat: obfuscate build files
2026-07-17 11:09:43 +02:00

47 lines
1.6 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 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] })],
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,
}
]
}
}
}
}
})
}