You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.2 KiB

import type { PluginOption } from 'vite'
2 years ago
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import UnoCSS from 'unocss/vite'
import AutoImport from 'unplugin-auto-import/vite'
2 years ago
import { configCompressPlugin } from './compress'
import { configHtmlPlugin } from './html'
2 years ago
import { configSvgIconsPlugin } from './svgSprite'
import { configVisualizerConfig } from './visualizer'
2 years ago
2 years ago
export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
const { VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv
2 years ago
const vitePlugins: PluginOption[] = [
2 years ago
// have to
vue(),
// have to
vueJsx(),
// UnoCSS
UnoCSS(),
AutoImport({
imports: ['vue', 'vue-router'],
}),
2 years ago
]
// vite-vue-plugin-html
vitePlugins.push(configHtmlPlugin({ isBuild }))
2 years ago
// vite-plugin-svg-icons
vitePlugins.push(configSvgIconsPlugin(isBuild))
// rollup-plugin-visualizer
vitePlugins.push(configVisualizerConfig())
// The following plugins only work in the production environment
if (isBuild) {
// rollup-plugin-gzip
vitePlugins.push(configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE))
}
return vitePlugins
}