boilarplate-nuxt3-server-ta.../nuxt.config.ts

105 lines
1.8 KiB
TypeScript

import UnpluginComponentsVite from 'unplugin-vue-components/vite'
import IconsResolver from 'unplugin-icons/resolver'
// https://v3.nuxtjs.org/docs/directory-structure/nuxt.config
export default defineNuxtConfig({
// server side rendering mode
ssr: true,
// typescripts
typescript: {
strict: true,
typeCheck: true,
},
// css
css: ['~/assets/sass/vendor.scss', '~/assets/sass/app.scss'],
// plugins
plugins: ['~/plugins/navbar.ts'],
// build
build: {
transpile: ['@headlessui/vue'],
},
// modules
modules: [
'unplugin-icons/nuxt',
'@intlify/nuxt3',
'@pinia/nuxt',
'@nuxt/content',
'@vueuse/nuxt',
'nuxt-windicss',
],
// experimental features
experimental: {
reactivityTransform: false,
},
// auto import components
components: true,
// vite plugins
vite: {
plugins: [
UnpluginComponentsVite({
dts: true,
resolvers: [
IconsResolver({
prefix: 'Icon',
}),
],
}),
],
},
// app config
app: {
// global transition
pageTransition: { name: 'page', mode: 'out-in' },
layoutTransition: { name: 'layout', mode: 'out-in' },
},
// localization - i18n config
intlify: {
localeDir: 'locales',
vueI18n: {
locale: 'en',
fallbackLocale: 'en',
availableLocales: ['en', 'id', 'ja', 'ko'],
},
},
// vueuse
vueuse: {
ssrHandlers: true,
},
// windicss
windicss: {
analyze: {
analysis: {
interpretUtilities: false,
},
server: {
port: 4000,
open: false,
},
},
scan: true,
},
// content
content: {
documentDriven: true,
markdown: {
mdc: true,
},
highlight: {
theme: 'github-dark',
},
},
})