templates/vitekit/my-vite-project/vite.config.js
2026-04-12 21:03:18 +03:00

58 lines
1.2 KiB
JavaScript

import { defineConfig } from 'vite';
import fs from 'node:fs';
import path from 'node:path';
import { replaceData, isProd } from './vite/app.js';
import { base, build } from './vite/build.js';
import { absPath } from './vite/path.js';
import { server, preview } from './vite/server.js';
import css from './vite/css.js';
import htmlmin from './vite/htmlmin.js';
import htmlTransformBase from './vite/html-transform-base.js';
import imagemin from './vite/imagemin.js';
import twig from './vite/twig.js';
import vituum from './vite/vituum.js';
const exampleData = JSON.parse(fs.readFileSync(path.resolve(absPath.data, 'example.json'), 'utf8'));
const plugins = [
vituum(),
twig({
globals: {
example: exampleData,
},
}),
];
if (isProd) {
plugins.push(imagemin());
plugins.push(htmlmin());
plugins.push(htmlTransformBase());
}
export default defineConfig({
// APP CONFIG
envPrefix: 'APP_',
define: replaceData,
css,
plugins,
resolve: {
alias: {
'@': absPath.src,
},
},
// BUILD
base,
build,
// SERVE
server: {
...server,
watch: {
include: 'src/**/*.twig',
exclude: 'node_modules/**',
},
},
preview,
});