Home

Awesome

šŸ“¦šŸ“¦ unplugin Imagemin Picture compression

NPM version

[!IMPORTANT] Tips: 1.0 goals unplugin-imagemin is preparing to release version 1.0, which will be released after achieving the following goals

[!WARNING] New features and stability, compatibility and performance features are constantly being updated Recommended to use the latest version pnpm add unplugin-imagemin@latest -D

[!WARNING] Since Google squoosh no longer maintains the node direction, This fock came out and revised some compatibility issues. Details squoosh-next

āœØāœØ Continuous iterative development in testing

āœØ : unplugin-imagemin
āœ” : Process start with mode squoosh
āœ… : [test1.png] [12.39 MB] -> [102.54 KB]
āœ” : Process start with mode squoosh
āœ… : [test2.png] [16.38 MB] -> [76.79 KB]

šŸŒˆ Features

Squoosh && Svgo

Unplugin-imagemin supports two compression modes

Squoosh is an image compression web app that reduces image sizes through numerous formats. Squoosh with rust & wasm

Svgo Support compression of pictures in svg format

šŸ“¦ Installation

pnpm add unplugin-imagemin@latest -D

support vite and rollup.

<details> <summary>Basic</summary><br>
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import imagemin from 'unplugin-imagemin/vite';
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(), imagemin()],
});

<br></details>

<details> <summary>Advanced</summary><br>
iimport { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import imagemin from 'unplugin-imagemin/vite';
import path from 'path';
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    imagemin({
      // Default configuration options for compressing different pictures
      compress: {
        jpg: {
          quality: 10,
        },
        jpeg: {
          quality: 10,
        },
        png: {
          quality: 10,
        },
        webp: {
          quality: 10,
        },
      },
      conversion: [
        { from: 'jpeg', to: 'webp' },
        { from: 'png', to: 'webp' },
        { from: 'JPG', to: 'jpeg' },
      ],
    }),
  ],
});

<br></details>

šŸŒø DefaultConfiguration

Squoosh DefaultConfiguration

DefaultConfiguration see DefaultConfiguration

Plugin property configuration see configuration

export interface PluginOptions {
  /**
   * @description Picture compilation and conversion
   * @default []
   */
  conversion?: ConversionItemType[];
  /**
   * @description Whether to turn on caching
   * @default true
   */
  cache?: boolean;
  /**
   * @description Path to the cache file location
   * @default ./node_modules/.cache/unplugin-imagemin/.unplugin-imagemin-cache
   */
  cacheLocation?: string;
  /**
   * @description Compilation attribute
   * @default CompressTypeOptions
   */
  compress?: CompressTypeOptions;
}