generated from the-collab-lab/smart-shopping-list
-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.js
94 lines (89 loc) · 1.92 KB
/
vite.config.js
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
92
93
94
import { defineConfig } from "vite";
import eslint from "@nabla/vite-plugin-eslint";
import react from "@vitejs/plugin-react";
import svgr from "vite-plugin-svgr";
import { VitePWA } from "vite-plugin-pwa";
import path from "path";
const PWAConfig = {
includeAssets: ["favicon.ico", "robots.txt"],
manifest: {
short_name: "Smart Shopping List",
name: "TCL Smart Shopping List",
description:
"A smart shopping list that learns your purchase habits and makes suggestions, so you don't forget to buy what's important.",
icons: [
{
src: "favicon.ico",
sizes: "64x64 32x32 24x24 16x16",
type: "image/x-icon",
},
{
src: "logo192.png",
type: "image/png",
sizes: "192x192",
},
{
src: "logo512.png",
type: "image/png",
sizes: "512x512",
},
],
start_url: ".",
display: "standalone",
theme_color: "#000000",
background_color: "#ffffff",
},
};
// https://vitejs.dev/config/
export default defineConfig(({ mode }) => ({
build: {
outDir: "./build",
target: "esnext",
rollupOptions: {
output: {
manualChunks: (id) => {
if (id.includes("node_modules")) {
if (id.includes("react-bootstrap") || id.includes("@restart")) {
return "vendor__react-bootstrap";
}
if (id.includes("react")) {
return "vendor__react";
}
if (id.includes("firebase")) {
return "vendor__firebase";
}
return "vendor";
}
},
},
},
},
plugins: [
mode === "development" && eslint(),
react(),
svgr({
exportAsDefault: true,
dimensions: false,
}),
VitePWA(PWAConfig),
],
root: path.resolve(__dirname),
resolve: {
alias: {
"~bootstrap": path.resolve(__dirname, "node_modules/bootstrap"),
},
},
css: {
preprocessorOptions: {
scss: {
api: "modern-compiler",
},
},
},
server: { open: true, port: 3000 },
test: {
globals: true,
environment: "jsdom",
setupFiles: "./tests/setup.js",
},
}));