Add i18n (zh-CN/en), mobile navigation menus, stats and upload UI improvements, and Docker reset-password CLI for emergency recovery.
69 lines
1.4 KiB
TypeScript
69 lines
1.4 KiB
TypeScript
import { readFileSync } from 'node:fs'
|
|
import { dirname, join } from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
const rootDir = dirname(fileURLToPath(import.meta.url))
|
|
const pkg = JSON.parse(readFileSync(join(rootDir, 'package.json'), 'utf8')) as {
|
|
version: string
|
|
}
|
|
|
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
|
export default defineNuxtConfig({
|
|
modules: [
|
|
'@nuxt/eslint',
|
|
'@nuxt/ui',
|
|
'@nuxtjs/i18n'
|
|
],
|
|
|
|
devtools: {
|
|
enabled: true
|
|
},
|
|
|
|
css: ['~/assets/css/main.css'],
|
|
|
|
colorMode: {
|
|
preference: 'system',
|
|
fallback: 'light'
|
|
},
|
|
|
|
runtimeConfig: {
|
|
appVersion: pkg.version,
|
|
devBypassAccess: process.env.DEV_BYPASS_ACCESS === 'true',
|
|
adminSecret: '',
|
|
imageBaseUrl: '',
|
|
apiUploadToken: ''
|
|
},
|
|
|
|
compatibilityDate: '2026-06-30',
|
|
|
|
nitro: {
|
|
preset: 'node-server',
|
|
scheduledTasks: {
|
|
'0 3 * * *': ['auto-delete']
|
|
}
|
|
},
|
|
|
|
eslint: {
|
|
config: {
|
|
stylistic: {
|
|
commaDangle: 'never',
|
|
braceStyle: '1tbs'
|
|
}
|
|
}
|
|
},
|
|
|
|
i18n: {
|
|
locales: [
|
|
{ code: 'zh-CN', name: '简体中文', language: 'zh-CN', file: 'zh-CN.json' },
|
|
{ code: 'en', name: 'English', language: 'en', file: 'en.json' }
|
|
],
|
|
defaultLocale: 'zh-CN',
|
|
langDir: 'locales',
|
|
strategy: 'no_prefix',
|
|
detectBrowserLanguage: {
|
|
cookieKey: 'pic_locale',
|
|
fallbackLocale: 'zh-CN'
|
|
}
|
|
}
|
|
})
|