index.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import type { Plugin, PluginOption } from 'vite';
  2. import Components from 'unplugin-vue-components/vite';
  3. import { NaiveUiResolver } from 'unplugin-vue-components/resolvers';
  4. import vue from '@vitejs/plugin-vue';
  5. import vueJsx from '@vitejs/plugin-vue-jsx';
  6. import { configHtmlPlugin } from './html';
  7. import { configCompressPlugin } from './compress';
  8. export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
  9. const { VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv;
  10. const vitePlugins: (Plugin | Plugin[] | PluginOption[])[] = [
  11. // have to
  12. vue(),
  13. // have to
  14. vueJsx(),
  15. // 按需引入NaiveUi且自动创建组件声明
  16. Components({
  17. dts: true,
  18. resolvers: [NaiveUiResolver()],
  19. }),
  20. ];
  21. // vite-plugin-html
  22. vitePlugins.push(configHtmlPlugin(viteEnv, isBuild));
  23. if (isBuild) {
  24. // rollup-plugin-gzip
  25. vitePlugins.push(
  26. configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE)
  27. );
  28. }
  29. return vitePlugins;
  30. }