Files
sori.studio/nuxt.config.js
zenn 095a8fa5f0 v1.4.1: 관리자 미디어 업로드 한도·라이브 에디터 UX 개선
종류별 업로드 크기 한도와 413 안내를 추가하고, 임베드·미디어 라이브 프리뷰·제목 Enter 포커스·스크롤 동작을 보정한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-21 15:33:23 +09:00

88 lines
3.0 KiB
JavaScript

// https://nuxt.com/docs/api/configuration/nuxt-config
import { buildSiteBootInlineScript } from './lib/site-theme-init.js'
export default defineNuxtConfig({
compatibilityDate: '2026-04-29',
future: {
compatibilityVersion: 3
},
devtools: {
enabled: false
},
modules: ['./modules/nuxt-ssr-paths-write.mjs', '@nuxtjs/tailwindcss'],
/**
* 기본 cssPath(assets/css/tailwind.css)가 없으면 패키지의 tailwind.css가 먼저 주입되어
* main.css와 @tailwind 이중 로딩·스타일 꼬임이 날 수 있어 엔트리를 main.css로 통일한다.
*/
tailwindcss: {
cssPath: '~/assets/css/main.css'
},
components: [
{
path: '~/components',
pathPrefix: false
}
],
experimental: {
appManifest: false
},
vite: {
server: {
watch: {
usePolling: true,
interval: 150
}
}
},
css: ['~/assets/css/main.css'],
app: {
head: {
htmlAttrs: {
lang: 'ko'
},
title: 'sori.studio',
meta: [
{ name: 'description', content: 'sori.studio 개인 블로그' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' }
],
script: [
{
key: 'site-boot',
type: 'text/javascript',
tagPriority: 'critical',
innerHTML: buildSiteBootInlineScript(process.env.NUXT_PUBLIC_SITE_TITLE || 'sori.studio')
}
]
}
},
runtimeConfig: {
databaseUrl: process.env.DATABASE_URL || '',
databaseName: process.env.DATABASE_NAME || '',
adminEmail: process.env.ADMIN_EMAIL || '',
adminPassword: process.env.ADMIN_PASSWORD || '',
memberSessionSecret: process.env.MEMBER_SESSION_SECRET || '',
analyticsHashSecret: process.env.ANALYTICS_HASH_SECRET || '',
resendApiKey: process.env.RESEND_API_KEY || '',
resendFromEmail: process.env.RESEND_FROM_EMAIL || '',
emailOtpPepper: process.env.EMAIL_OTP_PEPPER || '',
uploadDir: process.env.UPLOAD_DIR || '/uploads',
maxFileSize: Number(process.env.MAX_FILE_SIZE || 10485760),
maxVideoFileSize: Number(process.env.MAX_VIDEO_FILE_SIZE || 209715200),
maxAudioFileSize: Number(process.env.MAX_AUDIO_FILE_SIZE || 52428800),
maxDocumentFileSize: Number(process.env.MAX_DOCUMENT_FILE_SIZE || 52428800),
avatarMinWidth: Number(process.env.AVATAR_MIN_WIDTH || 96),
avatarMinHeight: Number(process.env.AVATAR_MIN_HEIGHT || 96),
avatarMaxWidth: Number(process.env.AVATAR_MAX_WIDTH || 512),
avatarMaxHeight: Number(process.env.AVATAR_MAX_HEIGHT || 512),
avatarWebpQuality: Number(process.env.AVATAR_WEBP_QUALITY || 82),
public: {
siteUrl: process.env.NUXT_PUBLIC_SITE_URL || 'https://sori.studio',
siteTitle: process.env.NUXT_PUBLIC_SITE_TITLE || 'sori.studio',
maxFileSize: Number(process.env.MAX_FILE_SIZE || 10485760),
maxVideoFileSize: Number(process.env.MAX_VIDEO_FILE_SIZE || 209715200),
maxAudioFileSize: Number(process.env.MAX_AUDIO_FILE_SIZE || 52428800),
maxDocumentFileSize: Number(process.env.MAX_DOCUMENT_FILE_SIZE || 52428800)
}
}
})