import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import * as path from 'path'
import legacyPlugin from '@vitejs/plugin-legacy'

// 自动导入vue中hook reactive ref等
import AutoImport from 'unplugin-auto-import/vite'
//自动导入ui-组件 比如说ant-design-vue  element-plus等
import Components from 'unplugin-vue-components/vite'
//ant-design-vue
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'

// svg plugin
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'

import autoprefixer from 'autoprefixer'

import legacy from '@vitejs/plugin-legacy'

export default defineConfig({
	resolve: {
		//设置别名
		alias: {
			'@': path.resolve(__dirname, 'src')
		}
	},
	css: {
		postcss: {
			plugins: [
				autoprefixer({
					overrideBrowserslist: ['Chrome > 40', 'ff > 31', 'ie 11']
				})
			]
		}
	},
	plugins: [
		vue(),
		// 修改 svg 相关配置
		createSvgIconsPlugin({
			// 指定需要缓存的图标文件夹
			iconDirs: [path.resolve(__dirname, './src/assets/svg')]
		}),
		legacy({
			targets: ['cover 99.5%']
		}),
		legacyPlugin({
			targets: ['chrome 52'], // 需要兼容的目标列表
			additionalLegacyPolyfills: ['regenerator-runtime/runtime'] // 面向IE11时需要此插件
		}),
		AutoImport({
			//安装两行后你会发现在组件中不用再导入ref，reactive等
			imports: ['vue', 'vue-router'],
			dts: 'auto-import.d.ts',
			//ant-design-vue
			resolvers: [AntDesignVueResolver()]
		}),
		Components({
			//ant-design-vue
			resolvers: [AntDesignVueResolver({ importStyle: true, resolveIcons: true })]
		})
	],
	optimizeDeps: {
		include: ['core-js']
	},
	server: {
		proxy: {
			'/dev-api': {
				//target是代理的目标路径
				target: '',
				changeOrigin: true, //必须要开启跨域
				rewrite: (path) => path.replace(/\/dev-api/, '') // 路径重写
			}
		}
	}
})
