Skip to content

zeroby0/netlify-plugin-11ty

Repository files navigation

Netlify 11ty Build Plugin

A plugin to make building with Eleventy and Netlify a joy!

Speed up your builds ⚡

Install

Install plugin via npm as dependency:

Note: Till 11ty/eleventy-img#116 is merged, please use this fork instead of @11ty/eleventy-img.

npm r @11ty/eleventy-img npm i zeroby0/eleventy-img#cache npm i netlify-plugin-11ty

And add the plugin to your netlify.toml file

[[plugins]] package = "netlify-plugin-11ty"

Configuration

Optionally, you can configure the plugin to suit your project's needs.

Example:

[[plugins]] package = "netlify-plugin-11ty" [plugins.inputs] cache_img = './img' cache_img_httpHeader = true cache_assets = '../.cache' cache_other = []

The following inputs options are available:

cache_img

Type: String or Array of Strings
Default: './img' (relative to the publish directory)

The folder(s) in which files generated by @11ty/eleventy-img are stored, relative to the publish directory. Can be a String or an array of Strings.

If set to false, files generated by @11ty/eleventy-img are not saved in Netlify cache.

cache_img_httpHeader

Type: Boolean
Default: true

If set to true, a files generated by @11ty/eleventy-img will be served with http header cache-control: public, max-age=31536000, immutable.

Files generated by eleventy_img have a hash calculated using file content and Sharp plugin options in their name, so you can cache them indefinitely.

cache_assets

Type: String or Array of Strings
Default: '../.cache' (relative to the publish directory)

The folder(s) in which remote assets fetched by @11ty/eleventy-cache-assets are cached, relative to publish directory. Can be a String or an array of Strings.

If set to false, assets fetched by @11ty/eleventy-cache-assets are not saved in Netlify cache.

cache_other

Type: String or Array of Strings
Default: [] (relative to the publish directory)

Any other folder(s) you'd like to cache across Netlify builds. If these folders exist before restoring Nelify cache, their content will be merged and overwritten with content from the cached folders.

FAQs

I rimraf my _site on every build

If your images are written to _site/img (default), use rimraf '_site/!(img)'.

If they are in a subdirectory, say _site/assets/images, use rimraf '_site/!(assets)' '_site/assets/!(images)'.

Are there any Benchmarks?

Yes!

The speed-up, ofcourse, depends on how many images your website has, but here is a benchmark I used when developing this plugin:

Run No cache persistence With cache persistence
1st run (empty cache) 11.74 seconds 11.52 seconds
2nd run (filled cache) 11.32 seconds 131.82 milliseconds

Read more

Recommended Netlify plugins

Bug Reports, Feature Requests, and Ideas

Please create an issue :)

License

MIT

If you need this repository with a different License, please create an issue.