Skip to content

Releases: 11ty/image

Image v7.0.0: The Memory Efficiency Release

Choose a tag to compare

@zachleat zachleat released this 29 Jul 16:18
Immutable release. Only release title and notes can be modified.
f69b24b

TL;DR: ESM-only, Node 22+ minimum, and huge memory and performance wins over v6.

Thank you to @sentience, @valadaptive, @kirthi-b, @jens-struct, and @jornmineur for their contributions to this release!

Issue Milestone: https://github.com/11ty/eleventy-img/milestone/25?closed=1
Full Changelog: v6.0.4...v7.0.0

Breaking changes

  • Node 22 or newer is required. This matches Core v4. #351
  • The package is now ESM. This is unlikely to require any changes as the Node minimum now supports require(esm). #300
    • ESM: import Image from "@11ty/eleventy-img"
    • CommonJS friendly: const Image = await import("@11ty/eleventy-img")
  • Upgrades sharp from v0.33 to v0.35 #352, #289
    • You can review the upstream v0.34 and v0.35 changelogs.

And a few breaking changes that are unlikely to affect most projects:

  • If you use the Transform method and set both width and eleventy:widths on the same element, note that eleventy:widths now takes priority. #314
  • Image.statsSync and Image.statsByDimensionsSync have been removed after being deprecated in 2024. Use the statsOnly feature instead, like so: await Image(src, { statsOnly: true, /* …options */ }). Helpful error messaging is provided if your project uses these (so don’t worry about it until you run into it, they weren’t commonly used). #211 #295
  • Removes the <eleventy-image> WebC component (use the transform method instead) #305

New Features

  • New passthrough format (usage: formats: ["passthrough"]) copies and uses the source file directly, while still adding width and height attributes to the generated output. Useful when you've already optimized your source images and want to skip the optimization pipeline — about 20× faster in local benchmarks. Example on #212. Also #133, #183, #309
  • New eleventy:sizes attribute allows overriding any sizes attribute in markup #306
  • New manualCacheKey option to improve the cropping API #271 #274 by @jens-struct

Bug Fixes

Line chart showing memory issues in v6, better performance in v5, but far improved performance in v7
  • Huge memory usage improvements from @sentience in #313 and @jornmineur in #302 #319 (v6 had issues, but we’ve eclipsed v5 performance with this release 🏆)
  • Removes the w descriptor when only one size is used in srcset, fixing valid HTML output when only one width is used and no sizes is present (#298).
  • Fixes eleventy:ignore appearing in output on <img> tags inside <picture> elements — by @valadaptive in #303.
  • Decodes HTML entities on <img src> when read back from HTML, by @kirthi-b #349 #307

Internals

Image v7.0.0-alpha.5

Image v7.0.0-alpha.5 Pre-release
Pre-release

Choose a tag to compare

@zachleat zachleat released this 27 Jul 16:08
Immutable release. Only release title and notes can be modified.
f4c514a

This is likely the last pre-release before v7 stable.

  • Breaking change: Node minimum is now 22+ (matching core v4) #351
  • Breaking change: removes deprecated (since 2024) synchronous functions Image.statsSync and Image.statsByDimensionsSync #211 #295
  • Breaking change: ugprades to sharp v0.35 #352 see upstream sharp changes
  • Fix: removes w descriptor when only one size is used in srcset, fixes valid HTML output when only one width is used and no sizes present #298
  • Feature: Adds new special passthrough format (usage: formats: ["passthrough"]) to copy and use the source file directly (still adds width and height attributes in generated output). Useful when you don’t want the optimization pipeline (and have already optimized your source images). About 20× faster in local benchmarks. Example on issue #212 Also #133 #183 #309
  • Fix: Decode HTML entities in image src when read back from HTML by @kirthi-b #349 #307
  • Feature: Adds manualCacheKey option to improve cropping API #271 #274 by @jens-struct
  • Fix: bug with bounded memory usage on large builds by @jornmineur #302 #319
  • Internals: swap from debug to obug dependency #356
  • Feature: Adds eleventy:sizes attribute which allows overriding any sizes attribute in markup #306

Thank you to @kirthi-b, @jens-struct, and @jornmineur

Full Changelog: v7.0.0-alpha.4...v7.0.0-alpha.5

Image v7.0.0-alpha.4

Image v7.0.0-alpha.4 Pre-release
Pre-release

Choose a tag to compare

@zachleat zachleat released this 24 Apr 23:00
Immutable release. Only release title and notes can be modified.
  • Breaking change: eleventy:widths will supersede width on Transform method #314
  • Fix poor in-memory cache performance due to accidental mutation of global object used in cache keys by @sentience in #313
  • Fix eleventy:ignore was appearing in output (Call cleanTag on <img> tags inside <picture>s too) by @valadaptive in #303

New Contributors

Milestone: https://github.com/11ty/eleventy-img/milestone/25?closed=1
Full Changelog: v7.0.0-alpha.2...v7.0.0-alpha.4

Image v7.0.0-alpha.3

Image v7.0.0-alpha.3 Pre-release
Pre-release

Choose a tag to compare

@zachleat zachleat released this 24 Apr 22:55
Immutable release. Only release title and notes can be modified.

Regression in npm prevented publish on this one. Use v7.0.0-alpha.4 instead.

Eleventy Image v7.0.0-alpha.2

Pre-release

Choose a tag to compare

@zachleat zachleat released this 27 Aug 19:34
  • Removes eleventy-image.webc component #305
  • Upgrades dev dep pixelmatch from v5 to v7

Full Changelog: v.7.0.0-alpha.1...v7.0.0-alpha.2

Eleventy Image v7.0.0-alpha.1

Pre-release

Choose a tag to compare

@zachleat zachleat released this 01 Jul 21:58
1fd3ec2

Issue Milestone: https://github.com/11ty/eleventy-img/milestone/25?closed=1
Full Changelog: v6.0.4...v.7.0.0-alpha.1

Eleventy Image v6.0.4

Choose a tag to compare

@zachleat zachleat released this 13 May 18:32
  • Internals revert of #294, which caused #296 (hangs when using Eleventy serve in transform method)

Milestone: https://github.com/11ty/eleventy-img/milestone/27?closed=1
Full Changelog: v6.0.3...v6.0.4

Eleventy Image v6.0.3

Choose a tag to compare

@zachleat zachleat released this 08 May 20:45
  • Adds Node v24 to CI test suite
  • Swap to use the image-size asynchronous API internally (when using statsOnly option) #294
  • Adds ImageSize export to reuse internal image-size package
  • Reuses multi-runtime hashing utility from @11ty/eleventy-utils@2.0.6
  • Upgrade devDependencies
  • Migrate to flat config with @stylistic/eslint-plugin-js by @outslept in #292

Milestone: https://github.com/11ty/eleventy-img/milestone/26?closed=1
Full Changelog: v6.0.2...v6.0.3

Eleventy Image v6.0.2 (dependency bump for security audit)

Choose a tag to compare

@zachleat zachleat released this 10 Apr 21:18

Milestone: https://github.com/11ty/eleventy-img/milestone/24?closed=1
Full Changelog: v6.0.1...v6.0.2

Eleventy Image v6.0.1 (Tiny Bugfix Release)

Choose a tag to compare

@zachleat zachleat released this 15 Jan 17:00
  • Bug fix when using animated images with transformOnRequest #273

Milestone: https://github.com/11ty/eleventy-img/milestone/23?closed=1
Full Changelog: v6.0.0...v6.0.1