import process from 'node:process' import { pwa } from './app/config/pwa' import { appDescription } from './app/constants/index' Object.assign(process.env, { VITE_COMMIT_REF: process.env.CF_PAGES_COMMIT_SHA || '', }) // add build time to env import.meta.env.VITE_APP_BUILD_TIME = new Date().getTime().toString() export default defineNuxtConfig({ modules: [ '@vueuse/nuxt', '@unocss/nuxt', '@pinia/nuxt', '@nuxtjs/color-mode', '@vite-pwa/nuxt', '@nuxt/eslint', '@nuxt/test-utils/module', '@zadigetvoltaire/nuxt-gtm', '@yunlefun/vue/nuxt', // fix QQ in iOS, Done // See https://github.com/unjs/ofetch/pull/366 // 'nuxt-fix-ofetch', ], ssr: false, components: [ { path: '~/components', pathPrefix: false }, ], devtools: { enabled: true, }, app: { head: { viewport: 'width=device-width,initial-scale=1', link: [ { rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' }, { rel: 'apple-touch-icon', href: '/apple-touch-icon.png' }, ], meta: [ { name: 'viewport', content: 'width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no' }, { name: 'description', content: appDescription }, { name: 'apple-mobile-web-app-status-bar-style', content: 'black-translucent' }, { name: 'theme-color', media: '(prefers-color-scheme: light)', content: 'white' }, { name: 'theme-color', media: '(prefers-color-scheme: dark)', content: '#222222' }, ], }, }, css: [ '@unocss/reset/tailwind.css', '~/styles/css-vars.scss', '~/styles/index.scss', ], colorMode: { classSuffix: '', }, future: { compatibilityVersion: 4, }, features: { // For UnoCSS inlineStyles: false, }, experimental: { // when using generate, payload js assets included in sw precache manifest // but missing on offline, disabling extraction it until fixed payloadExtraction: false, renderJsonPayloads: true, typedPages: true, }, compatibilityDate: '2024-08-14', nitro: { esbuild: { options: { target: 'esnext', }, }, prerender: { crawlLinks: false, routes: ['/', '/random', '/help', '/user', '/404', '/settings'], ignore: ['/hi'], }, }, eslint: { config: { standalone: false, nuxt: { sortConfigKeys: true, }, }, }, gtm: { id: 'GTM-5FJSV46', }, pwa, })