Files
portfolio/nuxt.config.ts
T
mahdiarghyani 1586bb7f80 chore: add BMAD agent workflows and configuration system
- Add comprehensive agent workflow definitions for 8 specialized roles (analyst, architect, developer, product manager, scrum master, technical writer, UX designer, QA engineer)
- Add 35+ workflow definitions covering analysis, planning, solutioning, and implementation phases
- Add BMAD configuration system with agent, task, tool, workflow, and file manifests
- Add BMM (Business Model Methodology) documentation including quick-start guides, architecture references, and workflow analysis
- Add test architecture knowledge base with 20+ testing patterns and best practices
- Add team configuration templates and party mode setup for collaborative development
- Establish foundation for enterprise agentic development framework with adaptive scaling capabilities
2025-11-30 14:36:05 +03:30

209 lines
4.1 KiB
TypeScript

// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
srcDir: 'app',
// Enable View Transitions API for smooth page transitions
experimental: {
viewTransition: true
},
// Configure page and layout transitions
app: {
baseURL: '/',
buildAssetsDir: '/_nuxt/',
cdnURL: '/',
pageTransition: {
name: 'page',
mode: 'out-in'
},
layoutTransition: {
name: 'layout',
mode: 'out-in'
}
},
modules: [
'@nuxt/content',
'@nuxt/fonts',
'@nuxt/ui',
'@nuxtjs/i18n',
'@nuxtjs/color-mode',
'@nuxt/image',
'@nuxtjs/sitemap'
],
css: [
'~/assets/css/main.css'
],
postcss: {
plugins: {
'@csstools/postcss-oklab-function': { preserve: false },
'@csstools/postcss-relative-color-syntax': { preserve: false },
'@csstools/postcss-color-mix-function': { preserve: false },
'postcss-preset-env': {
stage: 0,
features: {
'nesting-rules': true
}
},
autoprefixer: {}
}
},
vite: {
css: {
lightningcss: {
targets: {
safari: 15
}
}
}
},
devServer: {
host: '0.0.0.0',
port: 5000
},
fonts: {
defaults: {
preload: true,
weights: [300, 400, 500, 600, 700, 800],
styles: ['normal'],
subsets: ['latin'],
fallbacks: {
'sans-serif': ['system-ui', '-apple-system', 'Segoe UI', 'sans-serif'],
serif: ['Georgia', 'Times New Roman', 'serif']
}
},
families: [
{ name: 'Geist', provider: 'google', weights: [400, 500, 600, 700] },
{ name: 'Space Grotesk', provider: 'google', weights: [500, 600, 700] },
{ name: 'DM Sans', provider: 'google', weights: [400, 500, 600, 700] }
]
},
runtimeConfig: {
public: {
loadPlausible: "", // overrided by env,
siteUrl: 'https://aliarghyani.vercel.app' // Used for sitemap and RSS generation
},
},
// Site configuration for sitemap
site: {
url: 'https://aliarghyani.vercel.app'
} as any,
// Sitemap configuration
sitemap: {
gzip: true,
exclude: [],
defaults: {
changefreq: 'monthly',
priority: 0.8
}
} as any,
image: {
quality: 80,
domains: [],
screens: {
xs: 320,
sm: 640,
md: 768,
lg: 1024,
xl: 1280,
'2xl': 1536
},
formats: ['webp', 'jpg']
},
typescript: {
shim: false,
tsConfig: {
compilerOptions: {
// https://nuxt.com/blog/v3-5#bundler-module-resolution
moduleResolution: "bundler",
paths: {
"@": ["./app"],
"@/*": ["./app/*"],
},
},
},
},
colorMode: {
classSuffix: "",
preference: "dark",
fallback: "dark",
storageKey: "nuxt-color-mode",
},
// Nuxt Content configuration
content: {
markdown: {
mdc: true,
toc: {
depth: 3,
searchDepth: 3
}
},
documentDriven: false,
respectPathCase: true
} as any,
i18n: {
defaultLocale: 'en',
strategy: 'prefix_except_default',
locales: [
{ code: 'en', language: 'en-US', name: 'English', dir: 'ltr', file: 'en.json' },
{ code: 'fa', language: 'fa-IR', name: 'فارسی', dir: 'rtl', file: 'fa.json' },
],
langDir: 'locales',
detectBrowserLanguage: {
useCookie: true,
cookieKey: 'i18n_redirected',
alwaysRedirect: false,
redirectOn: 'root'
},
// Keep runtime vue-i18n options (legacy, warnings)
vueI18n: '~/i18n.config.ts'
},
// Prerender blog routes
nitro: {
prerender: {
crawlLinks: true,
routes: ['/', '/blog', '/fa/blog'],
failOnError: false,
ignore: ['/_vercel/image']
},
devProxy: {
host: '0.0.0.0'
}
},
// Route rules for caching and optimization
routeRules: {
// Blog routes caching
'/blog': { swr: 3600 },
'/fa/blog': { swr: 3600 },
'/blog/**': { swr: 3600 },
'/fa/blog/**': { swr: 3600 }
},
devtools: { enabled: false },
compatibilityDate: "2024-07-10",
components: {
dirs: [
{
path: '~/components',
pathPrefix: false
}
]
}
})