nodelqs0915/vue3_vite/vite/plugins/autoImport.ts
2024-09-15 17:48:19 +08:00

52 lines
2.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Plugin } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver, VueUseComponentsResolver } from 'unplugin-vue-components/resolvers'
import CompressPlugin from 'vite-plugin-compression'
//自动导入插件
export default (plugins: Plugin[], isBuild: boolean) => {
plugins.push(
AutoImport({
// resolvers: [ElementPlusResolver()],
//定义element-plus api按需加载
imports: [
// 'vue','vue-router','pinia',
{
// '@/store/piniaAutoImport': ['useStore'],
}],
//composables目录文件按需加载
// dirs: ['src/composables'],
dts: 'types/autoImport.d.ts',
}),
Components({
resolvers: [
//element-plus组件按需导入
// ElementPlusResolver(),
VueUseComponentsResolver(),
//针对iconpark图标按需导入
(componentName) => {
if (componentName.startsWith('IconPark')) {
return { name: componentName.slice(8), from: '@icon-park/vue-next' }
}
},
],
extensions: ['vue', 'tsx'],
//按需加载的文件夹
dirs: ['src/components'],
//组件名称包含目录,防止同名组件冲突
directoryAsNamespace: true,
//指定类型声明文件为true时在项目根目录创建
dts: 'types/components.d.ts',
}),
CompressPlugin({
verbose: true, // 默认即可
disable: false, //开启压缩(不禁用),默认即可
deleteOriginFile: false, //删除源文件
threshold: 10240, //压缩前最小文件大小
algorithm: 'gzip', //压缩算法
ext: '.gz' //文件类型
})
)
}