import type { PluginOption } from 'vite';
import { ViteImageOptimizer } from 'vite-plugin-image-optimizer';
/**
 * 打包图片压缩
 */
export function viteImageminOption(): PluginOption {
  return ViteImageOptimizer({
    logStats: false,
    gif: {},
    png: {
      quality: 90,
    },
    jpeg: {
      quality: 90, // 设置 jpg 压缩质量
    },
    webp: {
      quality: 80,
      lossless: true,
    },
    svg: {
      plugins: [
        {
          name: 'preset-default',
          params: {
            overrides: {
              // 保留关键属性
              removeViewBox: false, // 保持响应式能力
              removeTitle: false, // 保留可访问性
              removeDesc: false, // 保留可访问性
              cleanupIds: false, // 防止ID被修改
              collapseGroups: false, // 保留分组结构
              // 优化配置
              convertPathData: {
                // 路径优化
                floatPrecision: 2, // 保留2位小数精度
              },
              convertTransform: {
                // 变换优化
                floatPrecision: 2,
              },
            },
          },
        },
        // 额外插件
        'removeDimensions', // 移除冗余的width/height
        'sortAttrs', // 属性排序提高压缩率
        {
          name: 'removeAttrs',
          params: {
            attrs: 'data-.+', // 保留所有data-属性
            preserveCurrentColor: true,
          },
        },
      ],
    },
  });
}
