ITZX-Clubs-Home-Web/vite.config.ts
2024-12-15 19:07:02 +08:00

58 lines
1.5 KiB
TypeScript

import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import legacy from '@vitejs/plugin-legacy';
import { resolve } from 'node:path';
import AutoImport from 'unplugin-auto-import/vite';
import { FileSystemIconLoader } from 'unplugin-icons/loaders';
import IconsResolver from 'unplugin-icons/resolver';
import Icons from 'unplugin-icons/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
import Components from 'unplugin-vue-components/vite';
import { defineConfig } from 'vite';
// https://vitejs.dev/config/
export default defineConfig({
build: {
target: 'es2015',
},
plugins: [
legacy({
targets: ['defaults', 'Chrome >= 100', 'Edge >= 100', 'FireFox >= 110'],
polyfills: ['es.promise.with-resolvers'],
modernPolyfills: ['es.promise.with-resolvers'],
}),
vue(),
Components({
resolvers: [
ElementPlusResolver(),
IconsResolver({
prefix: 'icon',
enabledCollections: ['ep'],
customCollections: ['cs'],
}),
],
globs: [
'!src/components/*.vue',
'!src/components/**/*.vue',
'!src/views/*.vue',
'!src/views/**/*.vue',
],
}),
Icons({
autoInstall: true,
customCollections: {
cs: FileSystemIconLoader('./src/assets/icons'),
},
}),
],
resolve: {
alias: {
'@': resolve('./src'),
// vue: 'vue/dist/vue.esm-bundler.js'
},
},
server: {
host: '0.0.0.0',
port: 18081,
},
});