-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnuxt.config.ts
121 lines (119 loc) · 2.17 KB
/
nuxt.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
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import { getIconCollections } from "@egoist/tailwindcss-icons";
import { vite as vidstack } from "vidstack/plugins";
import platform from "./composables/icons/platform";
export default defineNuxtConfig({
app: {
rootTag: "main",
rootId: "lefine",
pageTransition: { name: "page", mode: "out-in" },
head: {
title: "Lefine",
meta: [
{ charset: "utf-8" },
{ name: "viewport", content: "width=device-width,initial-scale=1" },
],
htmlAttrs: {
lang: "en",
},
link: [{ rel: "dns-prefetch", href: "https://api.fontshare.com" }],
},
},
vue: {
compilerOptions: {
isCustomElement: (tag) => tag.startsWith("media-"),
},
},
css: [
"~/assets/styles/main.css",
"notivue/notifications.css",
"notivue/animations.css",
],
notivue: {
position: "bottom-right",
enqueue: true,
limit: 5,
},
postcss: {
plugins: {
"postcss-nested": {},
"postcss-mixins": {},
cssnano: {},
},
},
colorMode: {
preference: "dark",
},
devtools: {
enabled: true,
timeline: {
enabled: true,
},
},
modules: [
"@vue-macros/nuxt",
"@nuxt/ui",
"@pinia/nuxt",
"@pinia-plugin-persistedstate/nuxt",
"@nuxtjs/supabase",
"@vueuse/nuxt",
"@nuxt/image",
"notivue/nuxt",
"@nuxtjs/partytown",
"@nuxtjs/fontaine",
],
macros: {
setupSFC: true,
defineModels: true,
},
vite: {
vue: {
script: {
defineModel: true,
propsDestructure: true,
},
},
plugins: [vidstack({ include: /player\// })],
},
ui: {
icons: {
// might solve stretch bug on generate, see https://github.com/egoist/tailwindcss-icons/issues/23
extraProperties: {
"-webkit-mask-size": "contain",
"-webkit-mask-position": "center",
},
collections: {
lefine: {
icons: {
...platform,
},
},
...getIconCollections(["ph", "logos", "simple-icons"]),
},
},
},
image: {
dir: "assets/media",
},
supabase: {
redirect: false,
},
tailwindcss: {
viewer: false,
},
experimental: {
typedPages: true,
treeshakeClientOnly: true,
sharedPrerenderData: true,
},
typescript: {
strict: true,
},
nitro: {
experimental: {
asyncContext: true,
},
},
runtimeConfig: {
tmbdToken: import.meta.env.TMBD_API_KEY,
},
});