import tailwindcss from '@tailwindcss/vite' import { defineNuxtConfig } from 'nuxt/config' import { getConfig } from '../app.config' const config = getConfig() export default defineNuxtConfig({ modules: [ '@nuxt/eslint', '@pinia/nuxt', '@nuxt/icon', ], ssr: false, devtools: { enabled: true }, devServer: { port: config.development.nuxt.port, host: config.development.nuxt.host, }, runtimeConfig: { // Private keys (only available on server-side) redis: { host: config.redis.host, port: config.redis.port, db: config.redis.db, keyPrefix: config.redis.keyPrefix, }, // Public keys (exposed to client-side) public: { app: { name: config.app.name, version: config.app.version, description: config.app.description, author: config.app.author, }, window: config.window, theme: config.theme, isDevelopment: process.env.NODE_ENV === 'development', isElectron: process.env.IS_ELECTRON === 'true', }, }, app: { baseURL: './', cdnURL: './', head: { title: config.app.name, meta: [ { name: 'description', content: config.app.description }, { 'http-equiv': 'content-security-policy', 'content': `script-src ${config.security.csp.scriptSrc.join(' ')}; style-src ${config.security.csp.styleSrc.join(' ')}; img-src ${config.security.csp.imgSrc.join(' ')}` }, ], }, }, css: [ '~/assets/css/main.css', ], vite: { plugins: [ tailwindcss(), ], server: { watch: { ignored: ['./docker-data/*'], }, }, }, postcss: { plugins: { '@tailwindcss/postcss': {}, }, }, router: { options: { hashMode: true, }, }, typescript: { typeCheck: false, includeWorkspace: true, }, imports: { dirs: [ 'composables/**', 'stores/**' ] }, future: { compatibilityVersion: 4 }, features: { inlineStyles: false, }, experimental: { typedPages: true, payloadExtraction: false, renderJsonPayloads: false, }, compatibilityDate: '2025-05-26', })