JSPM

laravel-mix-imagemin

1.0.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1370
  • Score
    100M100P100Q176075F
  • License MIT

Laravel Mix imagemin plugin

Package Exports

  • laravel-mix-imagemin

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (laravel-mix-imagemin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Mix Imagemin

npm npm npm

This extension provides Imagemin support to your Mix (v2.1 and up) builds.

Usage

First, install the extension via npm or yarn.

$ npm install --save-dev laravel-mix-imagemin
$ yarn add --dev laravel-mix-imagemin

Next, require it in your webpack.mix.js file like below. Images will be copied and minified into the public path. Any files matched that aren't images will simply be copied to the public path.

let mix = require('laravel-mix');

require('laravel-mix-imagemin');

mix
    .js('resources/js/app.js', 'public/js')
    .imagemin('img/*');

Configuration

This extension uses the webpack CopyPlugin and ImageminPlugin to minify any images. The mix.imagemin function accepts 3 parameters. The first two are patterns and copyOptions, which are passed directly to the CopyPlugin's patterns and options parameters respectively. The third parameter is imageminOptions, which is passed to the ImageminPlugin's options parameter.

The patterns parameter is automatically converted to an array, so you can just pass a string or object. the copyOptions and imageminOptions parameters are optional.

For all available options, see CopyPlugin options and ImageminPlugin options.

let mix = require('laravel-mix');

require('laravel-mix-imagemin');

// Copy all files within `resources` matching `img/**.*` into the public path, preserving the file tree.
// Minify all images, `optipng` with `optimizationLevel` 5, disabling `jpegtran`, and adding `mozjpeg`.
mix
    .js('resources/js/app.js', 'public/js')
    .imagemin(
        'img/**.*',
        {
            context: 'resources',
        },
        {
            optipng: {
                optimizationLevel: 5
            },
            jpegtran: null,
            plugins: [
                require('imagemin-mozjpeg')({
                    quality: 100,
                    progressive: true,
                }),
            ],
        }
    );