mirror of
https://github.com/sunniejs/vue-h5-template.git
synced 2025-04-05 06:51:36 +08:00
74 lines
2.1 KiB
TypeScript
74 lines
2.1 KiB
TypeScript
/**
|
|
* @name createVitePlugins
|
|
* @description 封装plugins数组统一调用
|
|
*/
|
|
|
|
import type { PluginOption } from 'vite';
|
|
import vue from '@vitejs/plugin-vue';
|
|
import vueJsx from '@vitejs/plugin-vue-jsx';
|
|
import vueSetupExtend from 'vite-plugin-vue-setup-extend-plus';
|
|
import { ConfigSvgIconsPlugin } from './svgIcons';
|
|
import { AutoRegistryComponents } from './component';
|
|
import { AutoImportDeps } from './autoImport';
|
|
import { ConfigMockPlugin } from './mock';
|
|
import { ConfigCompressPlugin } from './compress';
|
|
import { ConfigPagesPlugin } from './pages';
|
|
import { ConfigRestartPlugin } from './restart';
|
|
import { ConfigProgressPlugin } from './progress';
|
|
import { ConfigEruda } from './eruda';
|
|
import { ConfigImageminPlugin } from './imagemin';
|
|
import { ConfigVisualizerConfig } from './visualizer';
|
|
import basicSsl from '@vitejs/plugin-basic-ssl';
|
|
|
|
export function createVitePlugins(env: ViteEnv, isBuild: boolean) {
|
|
const { VITE_USE_MOCK, VITE_USE_ERUDA, VITE_USE_COMPRESS, VITE_USE_REPORT, VITE_USE_HTTPS } = env;
|
|
|
|
const vitePlugins: (PluginOption | PluginOption[])[] = [
|
|
// vue支持
|
|
vue(),
|
|
// JSX支持
|
|
vueJsx(),
|
|
// setup语法糖组件名支持
|
|
vueSetupExtend(),
|
|
];
|
|
|
|
// 自动按需引入组件
|
|
vitePlugins.push(AutoRegistryComponents());
|
|
|
|
// 自动按需引入依赖
|
|
vitePlugins.push(AutoImportDeps());
|
|
|
|
// 自动生成路由
|
|
vitePlugins.push(ConfigPagesPlugin());
|
|
|
|
// 监听配置文件改动重启
|
|
vitePlugins.push(ConfigRestartPlugin());
|
|
|
|
// 构建时显示进度条
|
|
vitePlugins.push(ConfigProgressPlugin());
|
|
|
|
// eruda
|
|
VITE_USE_ERUDA && vitePlugins.push(ConfigEruda());
|
|
|
|
// rollup-plugin-visualizer
|
|
VITE_USE_REPORT && vitePlugins.push(ConfigVisualizerConfig());
|
|
|
|
// vite-plugin-mock
|
|
VITE_USE_MOCK && vitePlugins.push(ConfigMockPlugin(isBuild));
|
|
|
|
// vite-plugin-svg-icons
|
|
vitePlugins.push(ConfigSvgIconsPlugin(isBuild));
|
|
|
|
VITE_USE_HTTPS && vitePlugins.push(basicSsl());
|
|
|
|
if (isBuild) {
|
|
// vite-plugin-imagemin
|
|
vitePlugins.push(ConfigImageminPlugin());
|
|
|
|
// 开启.gz压缩 rollup-plugin-gzip
|
|
VITE_USE_COMPRESS && vitePlugins.push(ConfigCompressPlugin());
|
|
}
|
|
|
|
return vitePlugins;
|
|
}
|