@netlify/ipx
TypeScript icon, indicating that this package has built-in type declarations

1.4.6 • Public • Published

Netlify Optimized Images

On Demand image optimization for Netlify using ipx.

😺 Online demo: https://netlify-ipx.netlify.app

Usage

Add @netlify/ipx as devDependency:

# npm
npm i -D @netlify/ipx

# yarn
yarn add --dev @netlify/ipx

Create netlify/functions/ipx.ts:

import { createIPXHandler } from "@netlify/ipx";

export const handler = createIPXHandler({
  domains: ["images.unsplash.com"],
});

Now you can use IPX to optimize both local and remote assets ✨

Resize /test.jpg (in dist):

<img src="/.netlify/functions/ipx/w_200/static/test.jpg" />

Resize and change format for a remote url:

<img
  src="/.netlify/functions/ipx/f_webp,w_450/https://images.unsplash.com/photo-1514888286974-6c03e2ca1dba"
/>

Remote Patterns

Instead of setting an allowlist on domains, you may wish to use the option remotePatterns. This method allows wildcards in hostname and pathname segments.

remotePatterns is an array that contains RemotePattern objects:

remotePatterns: [
  {
    protocol: 'https' // or 'http' - not required
    hostname: 'example.com' // required
    port: '3000' // not required
    pathname: '/blog/**' // not required
  }
]

To use remote patterns, create netlify/functions/ipx.ts:

import { createIPXHandler } from "@netlify/ipx";

export const handler = createIPXHandler({
  remotePatterns: [
    {
      protocol: "https",
      hostname: "images.unsplash.com",
    },
  ],
});

hostname and pathname may contain wildcards:

remotePatterns: [
  {
    hostname: '*.example.com' // * = match a single path segment or subdomain
    pathname: '/blog/**' // ** = match any number of path segments or subdomains
  }
]

Local development

  • Clone repository
  • Install dependencies with yarn install
  • Build the project with yarn build
  • Run netlify development server with yarn dev.
  • Open http://localhost:8888

License

MIT

/@netlify/ipx/

    Package Sidebar

    Install

    npm i @netlify/ipx

    Weekly Downloads

    60,226

    Version

    1.4.6

    License

    MIT

    Unpacked Size

    27.9 kB

    Total Files

    9

    Last publish

    Collaborators

    • youvalv
    • berdav
    • vitaliyr
    • smnh
    • denar90
    • kathmbeck
    • rj-netlify
    • akardet
    • pieh
    • hrishikeshk
    • sarahetter
    • orinokai
    • ericap
    • seanroberts
    • skn0tt
    • mikewen
    • biilmann
    • marcus.netlify
    • jgantunes
    • eduardoboucas
    • netlify-bot
    • nasiba
    • ascorbic