/* * @Author: zhaojinfeng 121016171@qq.com * @Date: 2023-06-15 13:22:04 * @LastEditors: peerless_hero peerless_hero@outlook.com * @LastEditTime: 2023-08-30 16:30:47 * @FilePath: \vue3\vite.config.ts * @Description: * */ import { URL, fileURLToPath } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import AutoImport from 'unplugin-auto-import/vite' import eslint from 'vite-plugin-eslint' import Components from 'unplugin-vue-components/vite' import setupExtend from 'vite-plugin-vue-setup-extend' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' // https://vitejs.dev/config/ export default defineConfig({ build: { rollupOptions: { external: ['vue', /\.sass/], // 排除三方包 output: { globals: { vue: 'Vue', }, }, }, }, resolve: { alias: { '~': fileURLToPath(new URL('./packages', import.meta.url)), '@': fileURLToPath(new URL('./packages', import.meta.url)), }, }, plugins: [ vue({ reactivityTransform: true }), vueJsx(), // libCss({}), AutoImport({ resolvers: [ ElementPlusResolver(), ], dts: 'types/auto-imports.d.ts', imports: [ 'vue', 'vue/macros', 'vue-router', '@vueuse/core', { vue: ['createVNode'], }, ], vueTemplate: true, }), Components({ dts: 'types/components.d.ts', dirs: 'packages', types: [ { from: 'vue-router', names: ['RouterLink', 'RouterView'], }, ], directoryAsNamespace: true, resolvers: [ ElementPlusResolver(), ], }), setupExtend(), eslint(), ], })