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',
});