| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | import type { PluginOption } from 'vite';import vue from '@vitejs/plugin-vue';import vueJsx from '@vitejs/plugin-vue-jsx';import Components from 'unplugin-vue-components/vite';import { NaiveUiResolver } from 'unplugin-vue-components/resolvers';import VueSetupExtend from 'vite-plugin-vue-setup-extend';import { configHtmlPlugin } from './html';import { configMockPlugin } from './mock';import { configVisualizerPlugin } from './visualizer';import { configCompressPlugin } from './compress';export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean, prodMock) {  const { VITE_USE_MOCK, VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv;  const vitePlugins: (PluginOption | PluginOption[])[] = [    // have to    vue(),    // have to    vueJsx(),    // setup extend    VueSetupExtend(),    // 按需引入NaiveUi且自动创建组件声明    Components({      dts: true,      resolvers: [NaiveUiResolver()],    }),  ];  // vite-plugin-html  vitePlugins.push(configHtmlPlugin(viteEnv, isBuild));  // vite-plugin-mock  VITE_USE_MOCK && vitePlugins.push(configMockPlugin(isBuild, prodMock));  // rollup-plugin-visualizer  vitePlugins.push(configVisualizerPlugin());  if (isBuild) {    // rollup-plugin-gzip    vitePlugins.push(      configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE),    );  }  return vitePlugins;}
 |