{"id":25353,"library":"esbuild-plugin-imagemin","title":"esbuild-plugin-imagemin","description":"An esbuild plugin that automatically minifies images (PNG, JPG, GIF, SVG) during the build process using imagemin. Version 1.0.1 is the latest stable release, supports both CJS and ESM imports, and provides TypeScript type definitions. It bundles several popular imagemin plugins (mozjpeg, gifsicle, pngquant, svgo) by default, with options to disable individual ones, configure their options, or add custom imagemin plugins. This plugin differentiates itself by integrating seamlessly with esbuild's build pipeline, requiring no additional loaders or configuration beyond adding the plugin.","status":"active","version":"1.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/omyasn/esbuild-plugin-imagemin","tags":["javascript","esbuild","esbuild-plugin","image","imagemin","typescript"],"install":[{"cmd":"npm install esbuild-plugin-imagemin","lang":"bash","label":"npm"},{"cmd":"yarn add esbuild-plugin-imagemin","lang":"bash","label":"yarn"},{"cmd":"pnpm add esbuild-plugin-imagemin","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core image minimization library","package":"imagemin","optional":false},{"reason":"Default JPEG optimizer","package":"imagemin-mozjpeg","optional":true},{"reason":"Default GIF optimizer","package":"imagemin-gifsicle","optional":true},{"reason":"Default PNG optimizer","package":"imagemin-pngquant","optional":true},{"reason":"Default SVG optimizer","package":"imagemin-svgo","optional":true}],"imports":[{"note":"ESM default import is preferred; CJS require also works.","wrong":"const imageminPlugin = require('esbuild-plugin-imagemin')","symbol":"default","correct":"import imageminPlugin from 'esbuild-plugin-imagemin'"},{"note":"TypeScript type import, available when using TS.","wrong":"","symbol":"ImageminPluginOptions","correct":"import type { ImageminPluginOptions } from 'esbuild-plugin-imagemin'"},{"note":"The plugin is a function that returns a plugin object; call it before passing to plugins array.","wrong":"plugins: [imageminPlugin]","symbol":"esbuild plugin array entry","correct":"plugins: [imageminPlugin()]"}],"quickstart":{"code":"import esbuild from 'esbuild';\nimport imageminPlugin from 'esbuild-plugin-imagemin';\n\nawait esbuild.build({\n  entryPoints: ['src/index.js'],\n  bundle: true,\n  outfile: 'dist/bundle.js',\n  plugins: [imageminPlugin()],\n});","lang":"typescript","description":"Shows basic setup of esbuild with the imagemin plugin enabled, using ESM imports and async build."},"warnings":[{"fix":"Use imageminPlugin() instead of imageminPlugin in the plugins array.","message":"The plugin is a function that must be called — passing the function reference directly will not work.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Review default plugins and use disableDefaultPlugins if needed.","message":"Version 1.0.0 changed the default plugins list; previous versions may have used different defaults.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Ensure images are imported in your source files.","message":"The plugin only minifies images referenced via import/require in the bundle — it does not handle all image files automatically unless they are part of the build graph.","severity":"gotcha","affected_versions":">0"},{"fix":"Upgrade to v1.0.1 to get built-in TypeScript support.","message":"The package previously did not ship TypeScript types; type definitions were added in v1.0.1.","severity":"deprecated","affected_versions":"<1.0.1"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"npm install imagemin","cause":"Missing imagemin dependency (peer dependency not auto-installed in some npm versions).","error":"Error: Cannot find module 'imagemin'"},{"fix":"Change to imageminPlugin()","cause":"Calling the plugin without parentheses: plugins: [imageminPlugin] instead of plugins: [imageminPlugin()].","error":"TypeError: imageminPlugin is not a function"},{"fix":"Ensure entry points are files, not directories.","cause":"The plugin may attempt to process a directory path incorrectly if glob patterns are used.","error":"Error: Is a directory"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}