// vite.config.js import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' import { readdirSync, existsSync, mkdirSync } from 'fs' function createHTMLFiles() { const viewsDir = './src/views/admin' const vueFiles = readdirSync(viewsDir).filter(file => file.endsWith('.vue')) const input = {} vueFiles.forEach(file => { const pageName = file.replace('.vue', '') const htmlFileName = `${pageName}.html` // 创建正确的 HTML 内容,使用相对路径 const htmlContent = ` ${pageName}
` // 确保目录存在 if (!existsSync('./src')) { mkdirSync('./src') } // 将 HTML 文件写入 src 目录 writeFileSync(resolve(__dirname, 'src', htmlFileName), htmlContent) input[pageName] = resolve(__dirname, 'src', htmlFileName) }) return input } export default defineConfig({ plugins: [vue()], base: './', build: { rollupOptions: { input: { main: resolve(__dirname, 'index.html'), ...createHTMLFiles() } }, assetsDir: '', emptyOutDir: true, // 添加 chunk 大小警告限制 chunkSizeWarningLimit: 1000 }, resolve: { alias: { '@': resolve(__dirname, 'src') } }, preview: { port: 4173, host: true, open: '/landingManagement.html' } })