-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite.config.js
More file actions
65 lines (62 loc) · 2.14 KB
/
Copy pathvite.config.js
File metadata and controls
65 lines (62 loc) · 2.14 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
import { defineConfig } from "vite"
import vituum from 'vituum'
import nunjucks from '@vituum/vite-plugin-nunjucks'
import { splitVendorChunkPlugin } from 'vite'
import babel from "@rollup/plugin-babel"
import resolvePlugin from "@rollup/plugin-node-resolve"
import commonjs from "@rollup/plugin-commonjs"
import terser from "@rollup/plugin-terser"
export default defineConfig({
plugins:
[
splitVendorChunkPlugin(),
vituum(),
nunjucks({
root: './src',
data: ['./src/data/**/*.json'],
})
],
server: {
open: true
},
css: {
preprocessorOptions: {
scss: {
api: 'modern-compiler',
quietDeps: true
},
},
},
build: {
assetsInlineLimit: 0,
manifest: false,
modulePreload: false,
rollupOptions: {
output: {
chunkFileNames: "scripts/[name].js",
entryFileNames: "scripts/[name].js",
assetFileNames: (asset) => {
if (/\.css$/.test(asset.name ?? "")) {
return "styles/[name].css"
}
const fontsExts = /\.(woff2)$/i;
if (fontsExts.test(asset.name ?? "")) {
return `fonts/[name]${asset.name.match(fontsExts)[0]}`;
}
const imgsExts = /\.(jpeg|jpg|gif|png|webp|avif|heif|tiff|ico)$/i;
if (imgsExts.test(asset.name ?? "")) {
return `img/[name]${asset.name.match(imgsExts)[0]}`;
}
if (/\.svg$/.test(asset.name ?? "")) {
return "img/svg/[name].svg";
}
if (/sprite\.svg$/.test(asset.name ?? "")) {
return "img/svg-sprite/[name].svg"
}
return "assets/[name][extname]"
},
},
plugins: process.argv.includes('--mode=production') ? [resolvePlugin(), commonjs(), babel({ babelHelpers: 'bundled' }), terser()] : []
}
}
})