import { fileURLToPath, URL } from 'node:url' import { resolve } from 'node:path' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' export default defineConfig({ base: '/', plugins: [ vue(), AutoImport({ imports: ['vue', 'vue-router'], resolvers: [ElementPlusResolver()], dts: 'auto-imports.d.ts', vueTemplate: true, }), Components({ resolvers: [ElementPlusResolver()], dts: 'components.d.ts', }), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, server: { port: 5173, proxy: { '/newApi/api': { target: 'http://127.0.0.1:18080', changeOrigin: true, rewrite: (path) => path.replace(/^\/newApi/, ''), }, }, }, build: { outDir: 'new_web_source', emptyOutDir: true, cssCodeSplit: true, rollupOptions: { input: { dedupe: resolve(__dirname, 'dedupe.html'), convert: resolve(__dirname, 'convert.html'), split: resolve(__dirname, 'split.html'), 'delete-brand': resolve(__dirname, 'delete-brand.html'), 'appearance-patent': resolve(__dirname, 'appearance-patent.html'), 'product-risk': resolve(__dirname, 'product-risk.html'), 'shop-match': resolve(__dirname, 'shop-match.html'), 'price-track': resolve(__dirname, 'price-track.html'), 'patrol-delete': resolve(__dirname, 'patrol-delete.html'), 'query-asin': resolve(__dirname, 'query-asin.html'), }, output: { entryFileNames: 'assets/[name].js', chunkFileNames: 'assets/[name]-[hash].js', assetFileNames: 'assets/[name]-[hash][extname]', }, }, }, })