Stand with Ukraine 🇺🇦
Eleventy
The possum is Eleventy’s mascot

Eleventy Documentation

Menu

Events Jump to heading

Contents

You may want to run some code at certain times during the compiling process. To do that, you can use configuration events, which will run at specific times during the compiling process.

All events are configured in your .eleventy.js configuration file, with the code run every time the event triggers.

Asynchronous callback function support added in v1.0.

eleventy.before Added in v1.0.0 Jump to heading

The eleventy.before event runs every time Eleventy starts building, so it will run before the start of each stand-alone build, as well as each time building starts as either part of --watch or --serve. To use it, attach the event handler to your Eleventy config:

module.exports = function (eleventyConfig) {
// Async-friendly in 1.0+
eleventyConfig.on('eleventy.before', async () => {
// Run me before the build starts
});
};

eleventy.after Added in v1.0.0 Jump to heading

The eleventy.after event runs every time Eleventy finishes building, so it will run after the end of each stand-alone build, as well as each time building ends as either part of --watch or --serve. To use it, attach the event handler to your Eleventy config:

module.exports = function (eleventyConfig) {
// Async-friendly in 1.0+
eleventyConfig.on('eleventy.after', async () => {
// Run me after the build ends
});
};

Event arguments Added in v2.0.0 Jump to heading

Eleventy now provides an object with metadata on the build as an argument to the eleventy.before and eleventy.after event callbacks.

module.exports = function (eleventyConfig) {
eleventyConfig.on('eleventy.before', async ({ dir, runMode, outputMode }) => {
// Read more below
});

eleventyConfig.on('eleventy.after', async ({ dir, results, runMode, outputMode }) => {
// Read more below
});
};

eleventy.beforeWatch Added in v1.0.0 Jump to heading

The eleventy.beforeWatch event runs before a build is run only if it's a re-run during --watch or --serve. This means it will neither run during the initial build nor during stand-alone builds. To use it, attach the event handler to your Eleventy config:

module.exports = function (eleventyConfig) {
// Async-friendly in 1.0+
eleventyConfig.on('eleventy.beforeWatch', async (changedFiles) => {
// Run me before --watch or --serve re-runs

// changedFiles is an array of files that changed
// to trigger the watch/serve build
});
};

The changedFiles parameter was Added in v0.11.1.


Other pages in Configuration: