npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@liber-ufpe/esbuild-plugin-sharp

v1.0.0

Published

esbuild plugin that uses sharp to create webp and avif versions for your images

Downloads

1,858

Readme

esbuild-plugin-sharp

Build CodeQL

And esbuild plugin that generates webp and avif images out-of-the-box, and allows other formats supported by sharp.

Install

npm install @liber-ufpe/esbuild-plugin-sharp --save-dev

Usage

[!IMPORTANT] metafile: true option is required to generate the images files. See more about metafile in esbuild docs.

import esbuild from "esbuild";
import {imagesPlugin} from "@liber-ufpe/esbuild-plugin-sharp";

esbuild.build({
    entryPoints: ["src/index.js"],
    bundle: true,
    metafile: true,
    outfile: "dist/index.js",
    plugins: [imagesPlugin()],
}).catch(() => process.exit(1));

Or when customizing the options:

import esbuild from "esbuild";
import {imagesPlugin} from "@liber-ufpe/esbuild-plugin-sharp";

esbuild.build({
    entryPoints: ["src/index.js"],
    bundle: true,
    metafile: true,
    outfile: "dist/index.js",
    plugins: [imagesPlugin({ webp: false })],
}).catch(() => process.exit(1));

If you need to add an extra format, for example, another webp image but with lower quality:

import esbuild from "esbuild";
import {imagesPlugin} from "@liber-ufpe/esbuild-plugin-sharp";

esbuild.build({
    entryPoints: ["src/index.js"],
    bundle: true,
    metafile: true,
    outfile: "dist/index.js",
    plugins: [
        imagesPlugin({
            extraFormats: [{
                name: "webp",
                extension: ".low.webp",
                options: {
                    quality: 50
                }
            }]
        })
    ],
}).catch(() => process.exit(1));

See sharp documentation for a full list of supported formats and options for each one of them.

Options

  • webp: Enable webp generation.
    • type: boolean
    • default: true
  • avif: Enable avif generation.
    • type: boolean
    • default: true
  • includes: List of glob patterns to match files that will be included
    • type: string[]
    • default: ["**/*.{jpg,jpeg,png}"]
  • excludes: glob patterns to exclude files. Takes precedence over includes.
    • type: string[]
    • default: []
  • webpOptions: configuration for webp generation.
  • avifOptions: configuration for avif generation.
  • extraFormats: an array listing other formats to be generated.
    • type: ImageFormat[]. ImageFormat has the following options:
      • name: name of the format according to what is supported by sharp
      • extension: which extension will be used for the generated file. For example, .lowquality.webp.
      • options: the options used for each format. See sharp docs for a list of options for each format.
    • default: []

References: