index/nuxt.config.ts

179 lines
3.7 KiB
TypeScript
Raw Normal View History

2024-01-27 18:17:30 +02:00
import config from './config'
2023-11-06 19:32:15 +02:00
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
app: {
head: {
htmlAttrs: {
2024-01-27 18:17:30 +02:00
lang: config.locale,
},
2023-11-13 22:37:35 +02:00
link: [
{
rel: 'icon',
type: 'image/x-icon',
href: '/favicon.ico',
},
],
meta: [
{
charset: 'utf-8',
},
{
name: 'viewport',
content: 'width=device-width, initial-scale=1',
},
{
'http-equiv': 'X-UA-Compatible',
content: 'ie=edge',
},
],
},
2023-11-13 22:37:35 +02:00
pageTransition: { name: 'page', mode: 'out-in' },
rootId: 'ender-app',
},
2024-01-27 18:17:30 +02:00
features: {
inlineStyles: false,
},
components: {
dirs: [
{
path: '~/components',
pathPrefix: false,
extensions: ['.vue'],
},
],
},
css: ['~/assets/styles/main.scss'],
plugins: [],
2023-11-13 22:37:35 +02:00
modules: [
['@nuxtjs/eslint-module', { failOnError: false, lintOnStart: false }],
['@nuxtjs/stylelint-module', { failOnError: true, lintOnStart: false }],
2024-01-27 18:17:30 +02:00
'@pinia/nuxt',
'@nuxtjs/strapi',
'@nuxt/content',
'vuetify-nuxt-module',
'@nuxtjs/google-fonts',
2024-01-27 18:17:30 +02:00
'nuxt-site-config',
'nuxt-simple-sitemap',
'nuxt-simple-robots',
'nuxt-og-image',
2024-01-27 18:17:30 +02:00
'nuxt-link-checker',
2023-11-13 22:37:35 +02:00
],
nitro: {
prerender: {
crawlLinks: true,
autoSubfolderIndex: true,
failOnError: true,
routes: ['/robots.txt', '/sitemap.xml'],
},
},
2024-01-27 18:17:30 +02:00
vuetify: {
moduleOptions: {
importComposables: true,
prefixComposables: true,
2024-01-27 22:29:31 +02:00
styles: {
configFile: './assets/styles/vuetify.scss',
},
2024-01-27 18:17:30 +02:00
includeTransformAssetsUrls: true,
ssrClientHints: {
reloadOnFirstRequest: false,
viewportSize: true,
prefersColorScheme: true,
// prefersColorSchemeOptions: {
// cookieName: 'color-scheme',
// lightThemeName: 'light',
// darkThemeName: 'dark',
// useBrowserThemeOnly: false,
// },
prefersReducedMotion: false,
},
},
2024-01-27 18:17:30 +02:00
vuetifyOptions: {
ssr: {
clientWidth: 0,
clientHeight: 0,
},
components: false,
labComponents: true,
directives: false,
icons: false,
},
2023-11-18 19:28:27 +02:00
},
googleFonts: {
download: true,
families: {
Lato: true,
Alexandria: true,
},
},
site: {
2024-01-27 18:17:30 +02:00
env: process.env.NODE_ENV,
url: config.url,
name: config.name,
indexable: true,
trailingSlash: false,
},
linkChecker: {
failOnError: true,
report: {
html: true,
markdown: true,
},
},
routeRules: {
'/': {
sitemap: {
changefreq: 'yearly',
priority: 1,
},
},
'/about': {
sitemap: {
changefreq: 'yearly',
priority: 0.8,
},
},
'/projects': {
sitemap: {
changefreq: 'monthly',
priority: 0.8,
},
},
'/social': {
sitemap: {
changefreq: 'yearly',
priority: 0.8,
},
},
},
sitemap: {
cacheMaxAgeSeconds: 360,
exclude: [],
credits: false,
xslColumns: [
{ label: 'URL', width: '50%' },
{ label: 'Last Modified', select: 'sitemap:lastmod', width: '25%' },
{ label: 'Priority', select: 'sitemap:priority', width: '12.5%' },
{
label: 'Change Frequency',
select: 'sitemap:changefreq',
width: '12.5%',
},
],
// defaults: { ← Defaults override route rules...
// changefreq: 'monthly',
// priority: 0.7,
// lastmod: buildDate,
// },
},
robots: {
2024-01-27 18:17:30 +02:00
enabled: true,
metaTag: true,
blockNonSeoBots: true,
credits: false,
},
typescript: {
typeCheck: true,
},
2023-11-06 19:32:15 +02:00
})