@reactway/image-loader
TypeScript icon, indicating that this package has built-in type declarations

2.0.4 • Public • Published

@reactway/image-loader

A plugin made for a webpack to load, optimize and resize images. image-loader used at webpack-builder-plugin-images.

Getting started

$ npm i @reactway/image-loader

Simple example how to use it:

const ReactwayImagePlugin = require("@reactway/image-loader").ReactwayImagePlugin;

module.exports = {
    entry: "index.js",
    output: {
        path: __dirname + "/dist",
        filename: "main.js"
    },
    module: {
        rules: [
            {
                test: /\.(png|jpg|gif|svg)$/,
                loader: ReactwayImagePlugin.loader,
                options: {
                    optimizeInDev: true,
                    limit: 1000,
                    ...
                }
            }
        ]
    }
    ...
};

Adding @reactway/image-loader to plugin field if you want to see stats of resized/optimized images.

const ReactwayImagePlugin = require("@reactway/image-loader").ReactwayImagePlugin;

module.exports = {
    entry: "index.js",
    output: {
        path: __dirname + "/dist",
        filename: "main.js"
    },
    ...
    plugins: [new ReactwayImagePlugin()],
    ...
};

Passing options

interface ImageLoaderOptions {
    imageSizeLimitInBytes: string | number;
    optimizeImagesInDev: boolean;
    optimizationOptions: ImagesOptimization;
    outputFolder: string;
}

limit - Number or number in string that specify maximum of file size in bytes. If file size more than limit than it will create a file, otherwise - file will be transform into base64 URI.

sourceMaps - enable or disable sourceMaps for files.

optimizeInDev - enable or disable images optimization in development environment.

optimization - for images optimization it was used imagemin package plugins.

Check links to see possible options you can pass for optimization field.

outputFolder - path where it will output images in the given webpack config output. Default path: assets/images/.

Documentation

If you want use simple image without resizing:

import sampleImage from "./sample-image.png";

For resizing we used sharp package. Passing width or height is optional, images scales by given property. If you want resize image with certain width or height add query at the end of path of file:

const sampleImageSmall = require("./sampleImagejpg.jpg?width=200&height=200");
const sampleImageWidth = require("./sampleImagejpg.jpg?width=200");
const sampleImageHeight = require("./sampleImagejpg.jpg?height=200");

At the moment we are not supporting multiple queries. If you want to have separate image sizes, re-import them and add different query.

Images

All images generated from placeholder.com

License

Released under the MIT license.

Package Sidebar

Install

npm i @reactway/image-loader

Weekly Downloads

3

Version

2.0.4

License

MIT

Unpacked Size

57.1 kB

Total Files

13

Last publish

Collaborators

  • martynas-zilinskas
  • quatrodev
  • reactway-dev