web-class-frontend/nuxt.config.ts

81 lines
1.8 KiB
TypeScript

import Components from 'unplugin-vue-components/vite';
import AutoImport from 'unplugin-auto-import/vite';
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
devtools: { enabled: true },
modules: [
'@pinia/nuxt', // '@nuxtjs/robots',
'@nuxtjs/tailwindcss',
'@nuxtjs/color-mode', // '@nuxtjs/sitemap',
'@nuxt/eslint',
'@tdesign-vue-next/nuxt', // '@nuxt/content',
'@nuxt/scripts',
],
build: {
transpile: ['tdesign-vue-next'],
},
plugins: ['~/plugins/http.ts'],
tailwindcss: {
configPath: './app/tailwind.config.js',
exposeConfig: true,
viewer: true,
},
colorMode: {
preference: 'system',
dataValue: 'theme',
classSuffix: '',
},
// Sitemap module configuration: https://nuxtseo.com/site-config/getting-started/how-it-works
// site: {
// url: 'https://tdesign-vue-nuxt-starter.ataw.top', // FIXME: Your website URL
// },
nitro: {
compressPublicAssets: { brotli: true, gzip: true },
},
vite: {
vue: {
script: {
defineModel: true,
propsDestructure: true,
},
},
plugins: [
Components({
dts: 'types/components.d.ts',
resolvers: [],
}),
AutoImport({
imports: ['pinia'],
dts: 'types/auto-imports.d.ts',
dirs: ['hooks/**', 'stores', 'constants', 'utils/**', 'layouts'],
vueTemplate: true,
resolvers: [],
}),
],
server: {
proxy: {
'/api': {
target: 'http://localhost:8080', // 替换为你的 API 服务器地址
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
},
},
},
},
future: {
// 启用 Nuxt 4 功能前瞻
compatibilityVersion: 4,
},
compatibilityDate: '2024-07-19',
});