-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
62 lines (60 loc) · 1.47 KB
/
vite.config.ts
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
import { defineConfig } from "vite";
import preact from "@preact/preset-vite";
import url from "@rollup/plugin-url";
import autoprefixer from "autoprefixer";
import type { Plugin as PostCSSPlugin } from "postcss";
import cssDeclarationSorter from "css-declaration-sorter";
import banner from "./bundlerPlugins/banner";
const production = process.env.NODE_ENV === "production";
const env = process.env.NODE_ENV || "development";
const ssr = process.env.BUILD_MODE === "ssr";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
preact(),
production && {
...url({
include: [
"**/*.svg",
"**/*.png",
"**/*.jp(e)?g",
"**/*.gif",
"**/*.webp",
"**/*.avif",
],
limit: 0,
publicPath: "/assets/img/",
destDir: "dist/assets/img/",
emitFiles: !ssr,
fileName: "[name].[hash][extname]",
}),
enforce: "pre",
},
production &&
banner(
"/*! Licenses of used libraries, fonts and other software can be found at /lib-licenses.txt */\n",
),
],
define: {
"process.env.NODE_ENV": JSON.stringify(env),
"process.env.BUILD_MODE": JSON.stringify(process.env.BUILD_MODE || "spa"),
},
css: {
modules: {
generateScopedName: production
? "s[hash:base64:5]"
: "[name]__[local]__[hash:base64:5]",
},
postcss: {
plugins: [
cssDeclarationSorter({ keepOverrides: true }) as PostCSSPlugin,
autoprefixer(),
],
},
},
build: {
target: "modules",
manifest: true,
assetsInlineLimit: 0,
},
});