Files
Inventory_frontend/nuxt.config.ts

69 lines
2.1 KiB
TypeScript

import tailwindcss from '@tailwindcss/vite'
import { readFileSync } from 'node:fs'
import { dirname, resolve } from 'node:path'
import { fileURLToPath } from 'node:url'
// Lire la version depuis le fichier VERSION à la racine du projet parent
const getAppVersion = (): string => {
try {
const __dirname = dirname(fileURLToPath(import.meta.url))
const versionPath = resolve(__dirname, '..', 'VERSION')
return readFileSync(versionPath, 'utf-8').trim()
} catch {
return '0.0.0'
}
}
const appVersion = process.env.NUXT_PUBLIC_APP_VERSION || getAppVersion()
export default defineNuxtConfig({
compatibilityDate: '2025-07-15',
ssr: false, // Désactive le SSR pour un mode SPA pur (Client-Side Rendering uniquement)
devtools: { enabled: true },
devServer: {
host: '0.0.0.0',
port: 3000
},
modules: [
[
'unplugin-icons/nuxt',
{
componentPrefix: 'Icon',
warn: process.env.NODE_ENV === 'development',
collections: {
lucide: () => import('@iconify-json/lucide/icons.json').then(i => i.default)
}
}
]
],
runtimeConfig: {
apiBaseUrl: process.env.NUXT_API_BASE_URL
|| process.env.NUXT_PUBLIC_API_BASE_URL
|| 'http://localhost/api',
public: {
apiBaseUrl: process.env.NUXT_PUBLIC_API_BASE_URL || 'http://localhost:8081/api',
appUrl: process.env.NUXT_PUBLIC_APP_URL || 'http://localhost:3001',
appName: process.env.NUXT_PUBLIC_APP_NAME || 'Inventory Management System',
appVersion: appVersion,
apiTimeout: process.env.NUXT_PUBLIC_API_TIMEOUT || '30000',
requestTimeout: process.env.NUXT_PUBLIC_REQUEST_TIMEOUT || '10000',
enableDebug: process.env.NUXT_PUBLIC_ENABLE_DEBUG || 'true',
enableAnalytics: process.env.NUXT_PUBLIC_ENABLE_ANALYTICS || 'false',
csrfToken: process.env.NUXT_PUBLIC_CSRF_TOKEN || '',
logLevel: process.env.NUXT_PUBLIC_LOG_LEVEL || 'debug'
}
},
vite: {
plugins: [tailwindcss()]
},
css: ['~/assets/app.css'],
router: {
options: {
strict: false
}
},
experimental: {
payloadExtraction: false
}
})