| | |
| | | import type { Plugin } from 'vite'; |
| | | import { PluginOption } from 'vite'; |
| | | import vue from '@vitejs/plugin-vue'; |
| | | import vueJsx from '@vitejs/plugin-vue-jsx'; |
| | | import legacy from '@vitejs/plugin-legacy'; |
| | | import purgeIcons from 'vite-plugin-purge-icons'; |
| | | import windiCSS from 'vite-plugin-windicss'; |
| | | import VitePluginCertificate from 'vite-plugin-mkcert'; |
| | | //import vueSetupExtend from 'vite-plugin-vue-setup-extend'; |
| | | import { configHtmlPlugin } from './html'; |
| | | import { configPwaConfig } from './pwa'; |
| | | import { configMockPlugin } from './mock'; |
| | |
| | | import { configStyleImportPlugin } from './styleImport'; |
| | | import { configVisualizerConfig } from './visualizer'; |
| | | import { configThemePlugin } from './theme'; |
| | | import { configImageminPlugin } from './imagemin'; |
| | | import { configSvgIconsPlugin } from './svgSprite'; |
| | | import { configHmrPlugin } from './hmr'; |
| | | |
| | | export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) { |
| | | const { |
| | | VITE_USE_IMAGEMIN, |
| | | VITE_USE_MOCK, |
| | | VITE_LEGACY, |
| | | VITE_BUILD_COMPRESS, |
| | | VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE, |
| | | } = viteEnv; |
| | | const { VITE_USE_MOCK, VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv; |
| | | |
| | | const vitePlugins: (Plugin | Plugin[])[] = [ |
| | | const vitePlugins: (PluginOption | PluginOption[])[] = [ |
| | | // have to |
| | | vue(), |
| | | // have to |
| | | vueJsx(), |
| | | // support name |
| | | //vueSetupExtend(), |
| | | VitePluginCertificate({ |
| | | source: 'coding', |
| | | }), |
| | | ]; |
| | | |
| | | // vite-plugin-windicss |
| | | vitePlugins.push(windiCSS()); |
| | | |
| | | // TODO |
| | | !isBuild && vitePlugins.push(configHmrPlugin()); |
| | | |
| | | // @vitejs/plugin-legacy |
| | | VITE_LEGACY && isBuild && vitePlugins.push(legacy()); |
| | | |
| | | // vite-plugin-html |
| | | vitePlugins.push(configHtmlPlugin(viteEnv, isBuild)); |
| | |
| | | // rollup-plugin-visualizer |
| | | vitePlugins.push(configVisualizerConfig()); |
| | | |
| | | //vite-plugin-theme |
| | | // vite-plugin-theme |
| | | vitePlugins.push(configThemePlugin(isBuild)); |
| | | |
| | | // The following plugins only work in the production environment |
| | | if (isBuild) { |
| | | //vite-plugin-imagemin |
| | | VITE_USE_IMAGEMIN && vitePlugins.push(configImageminPlugin()); |
| | | |
| | | // rollup-plugin-gzip |
| | | vitePlugins.push( |
| | | configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE) |
| | | configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE), |
| | | ); |
| | | |
| | | // vite-plugin-pwa |