Files
vue3/vite.config.ts
2023-06-21 12:04:22 +08:00

79 lines
1.8 KiB
TypeScript

/*
* @Author: zhaojinfeng 121016171@qq.com
* @Date: 2023-06-15 13:22:04
* @LastEditors: zhaojinfeng 121016171@qq.com
* @LastEditTime: 2023-06-21 11:32:48
* @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 libCss from 'vite-plugin-libcss'
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(),
vueJsx(),
libCss({}),
AutoImport({
resolvers: [
ElementPlusResolver(),
],
dts: 'types/auto-imports.d.ts',
imports: [
'vue',
'vue/macros',
'vue-router',
'@vueuse/core',
{
'vue': ['createVNode'],
'element-plus': ['dayjs'],
},
],
vueTemplate: true,
}),
Components({
dts: 'types/components.d.ts',
dirs: 'packages',
types: [
{
from: 'vue-router',
names: ['RouterLink', 'RouterView'],
},
],
directoryAsNamespace: true,
resolvers: [
ElementPlusResolver(),
],
}),
setupExtend(),
eslint(),
],
})