12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import type { Plugin } from 'vite';
- import vue from '@vitejs/plugin-vue';
- import vueJsx from '@vitejs/plugin-vue-jsx';
- import Components from 'unplugin-vue-components/vite';
- import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
- import AutoImport from 'unplugin-auto-import/vite';
- import legacy from '@vitejs/plugin-legacy';
- import compression from 'vite-plugin-compression';
- export function createVitePlugins(isBuild: boolean, env): Plugin[] {
- const plugins = [
- vue(),
- vueJsx(),
- Components({
- dirs: ['src/components'],
- extensions: ['vue'],
- deep: true,
- resolvers: [
- AntDesignVueResolver({
-
- importStyle: 'less',
-
- resolveIcons: true
- })
- ],
- dts: 'src/components.d.ts'
- }),
- AutoImport({
- imports: [
- 'vue',
- 'vue-router',
- {
- '@vueuse/core': ['useLocalStorage', 'useClipboard']
- }
- ],
- dts: 'src/auto-imports.d.ts'
- })
- ];
- if (isBuild) {
- if (env.VITE_BUILD_LEAGCY === 'on') {
- plugins.push(
- legacy({
- targets: ['ie >= 11'],
- additionalLegacyPolyfills: ['regenerator-runtime/runtime']
- })
- );
- }
- if (env.VITE_BUILD_GZIP === 'on') {
- plugins.push(
- compression({
-
- ext: '.gz',
-
- verbose: true,
-
- deleteOriginFile: false,
-
- threshold: 5 * 1024 + 1
- })
- );
- }
- }
- return plugins;
- }
|