-
Notifications
You must be signed in to change notification settings - Fork 29
/
nuxt.config.ts
117 lines (112 loc) · 2.81 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
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
compatibilityDate: '2024-09-17',
future: { compatibilityVersion: 4 },
// Build configuration
nitro: {
routeRules: {
// All routes should be ISR
'/**': {
isr: true
}
},
prerender: {
// This helps ensure that all paths end with `/`.
autoSubfolderIndex: true,
crawlLinks: true
},
compressPublicAssets: {
gzip: true
}
},
vite: {
optimizeDeps: {
// Used for v8.3.5 of Storybook. Can remove after update.
// SEE https://github.com/nuxt-modules/storybook/issues/776
include: ['jsdoc-type-pratt-parser']
}
},
vue: {
// Required for @nuxtjs/storybook
runtimeCompiler: process.env.STORYBOOK === 'true'
},
// Nuxt app configuration
app: {
head: {
meta: [
{ charset: 'utf-8' },
{
name: 'viewport',
content: 'width=device-width, initial-scale=1'
}
],
link: [
{
rel: 'icon',
type: 'image/png',
href: '/favicon.png'
}
]
},
pageTransition: {
name: 'fade',
mode: 'out-in'
}
},
devtools: {
// This only ships on dev, it gets stripped in Production
enabled: true
},
// Runtime ENV parsing
runtimeConfig: {
public: {
wordpressApiUrl: process.env.WORDPRESS_API_URL
}
},
// CSS and fonts
css: [
'~/assets/css/vars.css',
'~/assets/css/main.css',
'~/assets/css/transitions.css'
],
postcss: {
plugins: {
'@csstools/postcss-global-data': {
files: ['./app/assets/css/media.css']
},
'postcss-nested': {},
'postcss-custom-media': {}
}
},
// Modules and configuration
modules: [
'@pinia/nuxt',
'nuxt-svgo',
'@nuxt/fonts',
'@nuxtjs/storybook',
'@nuxtjs/sitemap',
'@vueuse/nuxt',
'nuxt-lodash'
],
lodash: {
prefix: '_',
prefixSkip: []
},
sitemap: {
exclude: ['/wp-admin/']
},
svgo: {
autoImportPath: './assets/svgs/',
defaultImport: 'component',
componentPrefix: 'svg'
},
fonts: {
defaults: {
weights: [100, 200, 300, 400, 500, 600, 700, 800, 900],
},
experimental: {
// Must be enabled to support processing fonts as CSS vars
processCSSVariables: true
}
}
})