-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvite.config.js
96 lines (95 loc) · 2.48 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
95
96
import { defineConfig } from 'vite';
import { VitePWA } from 'vite-plugin-pwa';
import { globSync } from 'glob';
import path from 'node:path';
import { fileURLToPath, URL } from 'node:url';
export default defineConfig({
root: '_site',
build: {
outDir: '../dist',
rollupOptions: {
input: Object.fromEntries(
globSync('_site/**/*.html').map((file) => [
// This remove `src/` as well as the file extension from each
// file, so e.g. src/nested/foo.js becomes nested/foo
path.relative(
'_site',
file.slice(0, file.length - path.extname(file).length),
),
// This expands the relative paths to absolute paths, so e.g.
// src/nested/foo becomes /project/src/nested/foo.js
fileURLToPath(new URL(file, import.meta.url)),
]),
),
},
emptyOutDir: true,
},
plugins: [
VitePWA({
includeAssets: [
'favicon.svg',
'favicon.ico',
'robots.txt',
'apple-touch-icon.png',
],
manifest: {
name: '11st-Starter-Kit',
short_name: '11st-Starter-Kit',
description: '11ty, powered by Vite with Tailwind CSS and Alpine.js.',
scope: '/',
start_url: '/',
display: 'standalone',
theme_color: '#4a5568',
background_color: '#fff',
icons: [
{
src: 'pwa-72x72.png',
sizes: '72x72',
type: 'image/png',
},
{
src: 'pwa-96x96.png',
sizes: '96x96',
type: 'image/png',
},
{
src: 'pwa-128x128.png',
sizes: '128x128',
type: 'image/png',
},
{
src: 'pwa-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: 'pwa-152x152.png',
sizes: '152x152',
type: 'image/png',
},
{
src: 'pwa-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: 'pwa-384x384.png',
sizes: '384x384',
type: 'image/png',
},
{
src: 'pwa-512x512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: 'maskable_icon.png',
sizes: '196x196',
type: 'image/png',
purpose: 'any maskable',
},
],
},
}),
],
});