import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { readFileSync, writeFileSync } from 'fs'
import { join } from 'path'

// 从 config/VERSION 文件读取版本号
function getVersion() {
  try {
    const versionFile = join(__dirname, '..', 'config', 'VERSION')
    const content = readFileSync(versionFile, 'utf-8').trim()
    // 移除 VERSION= 前缀
    if (content.startsWith('VERSION=')) {
      return content.substring(7).trim()
    }
    return content || '0.0.0'
  } catch (e) {
    console.error('读取 VERSION 文件失败:', e.message)
    return '0.0.0'
  }
}

const APP_VERSION = getVersion()
console.log('📦 构建版本：v' + APP_VERSION)

// 构建时自动更新 index.html 的 title
function updateHtmlTitle() {
  try {
    const htmlPath = join(__dirname, 'index.html')
    let htmlContent = readFileSync(htmlPath, 'utf-8')
    // 替换 <title>甲辰收藏 vXXX</title>
    htmlContent = htmlContent.replace(
      /<title>甲辰收藏 v[\d.]+<\/title>/,
      '<title>甲辰收藏 v' + APP_VERSION + '</title>'
    )
    writeFileSync(htmlPath, htmlContent, 'utf-8')
    console.log('✅ 已更新 index.html title: 甲辰收藏 v' + APP_VERSION)
  } catch (e) {
    console.error('更新 index.html 失败:', e.message)
  }
}

// 构建前执行
updateHtmlTitle()

export default defineConfig({
  plugins: [react()],
  define: {
    'import.meta.env.APP_VERSION': JSON.stringify(APP_VERSION)
  },
  build: {
    rollupOptions: {
      output: {
        entryFileNames: 'assets/[name]-[hash]-[name].js',
        chunkFileNames: 'assets/[name]-[hash].js',
        assetFileNames: 'assets/[name]-[hash].[ext]'
      }
    }
  }
})