-
-
Notifications
You must be signed in to change notification settings - Fork 74
Expand file tree
/
Copy pathvite.config.js
More file actions
91 lines (90 loc) · 2.31 KB
/
Copy pathvite.config.js
File metadata and controls
91 lines (90 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import path from 'path';
import postcssImport from 'postcss-import';
import { ViteImageOptimizer } from 'vite-plugin-image-optimizer';
import { coverageConfigDefaults, defineConfig } from 'vitest/config';
export default defineConfig({
build: {
assetsInlineLimit: 0,
emptyOutDir: false,
outDir: '../_deploy',
rollupOptions: {
input: path.resolve(__dirname, 'frontend/assets/main-entry.js'),
output: {
assetFileNames: (assetInfo) => {
if (assetInfo.name && assetInfo.name.endsWith('.css')) {
return 'assets/styles/[name].css';
} else if (assetInfo.originalFileNames?.some((name) => name.includes('assets/avatars/'))) {
return `assets/avatars/${assetInfo.name}`;
} else if (assetInfo.originalFileNames?.some((name) => name.includes('assets/images/'))) {
return `assets/images/${assetInfo.name}`;
} else if (assetInfo.originalFileNames?.some((name) => name.includes('assets/pictures/'))) {
return `assets/pictures/${assetInfo.name}`;
}
return 'assets/[name][extname]';
},
chunkFileNames: 'assets/scripts/[name].js',
entryFileNames: 'assets/scripts/[name].js',
manualChunks: undefined,
},
},
},
css: {
postcss: {
plugins: [postcssImport()],
},
},
plugins: [
ViteImageOptimizer({
ansiColors: true,
avif: { lossless: true },
gif: {},
includePublic: true,
jpeg: { quality: 80 },
jpg: { quality: 80 },
logStats: true,
png: { quality: 90 },
svg: {
multipass: true,
plugins: [
{
name: 'preset-default',
params: {
overrides: {
cleanupIds: {
minify: false,
remove: false,
},
cleanupNumericValues: false,
convertPathData: false,
},
},
},
'sortAttrs',
{
name: 'addAttributesToSVGElement',
params: {
attributes: [{ xmlns: 'http://www.w3.org/2000/svg' }],
},
},
],
},
test: /\.(jpe?g|png|gif|tiff|webp|svg|avif)$/i,
tiff: { quality: 100 },
webp: { lossless: true },
}),
],
root: './_site',
server: {
port: 5173,
strictPort: true,
},
test: {
coverage: {
all: true,
exclude: ['**/packages/cfsite/**', '**/_site/**', ...coverageConfigDefaults.exclude],
provider: 'v8',
reporter: ['text', 'json', 'html', 'cobertura'],
reportsDirectory: '../coverage',
},
},
});