//vite.config.ts
{
plugins: useVitePlugins(viteEnv, isProduction)
}
export function useVitePlugins(viteEnv: ViteEnv, isProduction: boolean) {
const {
VITE_USE_IMAGEMIN,
VITE_BUILD_COMPRESS,
VITE_BUILD_COMPRESS_DEL_SOURCE_FILE,
} = viteEnv;
const vitePlugins: (Plugin | Plugin[])[] = [
// have to
vue(),
// have to
vueJsx(),
];
// vite-plugin-svg-icons
//vitePlugins.push(configSvgIconsPlugin(isProduction));
// vite-plugin-style-import
vitePlugins.push(configStyleImportPlugin(isProduction));
// vite-plugin-style-import
// vitePlugins.push(ThemePlugin());
//vite-plugin-imagemin 一直不成功
// isProduction && VITE_USE_IMAGEMIN && vitePlugins.push(configImageminPlugin());
// rollup-plugin-gzip
// isProduction && vitePlugins.push(
// configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DEL_SOURCE_FILE),
// );
return vitePlugins;
}
import styleImport from 'vite-plugin-style-import';
export function configStyleImportPlugin(isProduction: boolean) {
//生产和开发先用一样的
const styleImportPlugin = styleImport({
libs: [
{
libraryName: 'ant-design-vue',
esModule: true,
resolveStyle: (name) => {
// 组件样式按需加载,无需全局引入
return `ant-design-vue/es/${name}/style/index`
},
},
],
});
return styleImportPlugin;
}