94 lines
2.2 KiB
TypeScript
94 lines
2.2 KiB
TypeScript
// https://nuxt.com/docs/api/configuration/nuxt-config
|
|
const appName = 'ChatGPT UI'
|
|
|
|
export default defineNuxtConfig({
|
|
dev: false,
|
|
ssr: false,
|
|
app: {
|
|
head: {
|
|
title: appName,
|
|
},
|
|
},
|
|
runtimeConfig: {
|
|
public: {
|
|
appName: appName,
|
|
typewriter: false,
|
|
typewriterDelay: 50,
|
|
}
|
|
},
|
|
build: {
|
|
transpile: ['vuetify']
|
|
},
|
|
css: [
|
|
'vuetify/styles',
|
|
'material-design-icons-iconfont/dist/material-design-icons.css',
|
|
'highlight.js/styles/panda-syntax-dark.css',
|
|
],
|
|
modules: [
|
|
'@vite-pwa/nuxt',
|
|
'@nuxtjs/color-mode',
|
|
'@nuxtjs/i18n',
|
|
],
|
|
pwa: {
|
|
registerType: 'autoUpdate',
|
|
manifest: {
|
|
name: appName,
|
|
short_name: appName,
|
|
icons: [
|
|
{
|
|
src: 'icon-black.svg',
|
|
sizes: '900x900',
|
|
purpose: 'any maskable',
|
|
}
|
|
],
|
|
},
|
|
workbox: {
|
|
navigateFallback: '/',
|
|
globPatterns: ['**/*.{js,css,html,png,svg,ico}'],
|
|
},
|
|
client: {
|
|
installPrompt: true,
|
|
// you don't need to include this: only for testing purposes
|
|
// if enabling periodic sync for update use 1 hour or so (periodicSyncForUpdates: 3600)
|
|
periodicSyncForUpdates: 20,
|
|
},
|
|
devOptions: {
|
|
enabled: true,
|
|
type: 'module',
|
|
}
|
|
},
|
|
i18n: {
|
|
strategy: 'no_prefix',
|
|
locales: [
|
|
{
|
|
code: 'en',
|
|
iso: 'en-US',
|
|
name: 'English',
|
|
file: 'en-US.json',
|
|
},
|
|
{
|
|
code: 'zh-CN',
|
|
iso: 'zh-CN',
|
|
name: '简体中文',
|
|
file: 'zh-CN.json',
|
|
}
|
|
],
|
|
lazy: true,
|
|
langDir: 'lang',
|
|
defaultLocale: 'en',
|
|
vueI18n: {
|
|
fallbackLocale: 'en',
|
|
},
|
|
},
|
|
nitro: {
|
|
devProxy: {
|
|
"/api": {
|
|
target: "http://localhost:8000/api",
|
|
prependPath: true,
|
|
changeOrigin: true,
|
|
}
|
|
|
|
}
|
|
},
|
|
})
|