Skip to navigation Skip to main content
Black Lives Matter
Eleventy Documentation
Toggle Menu
Eleventy 5.81s
Remix 40.14s

Environment Variables


You can set and use your own environment variables in your projects. They will be available in your code via Node.js’ process.env property.

These are typically used for setting your deployment context and private API keys. This is also the approach used to enable DEBUG mode.

Note that Eleventy exposes environment variables only to JavaScript files that are evaluated during the build time. This includes the config file and all JavaScript files required from there, JavaScript data files, etc. Environment variables are not available in the templates. You need to expose them yourself. For example, using a Global Data file.

Setting your own Jump to heading

Via .env file Jump to heading

For private keys and other sensitive information, you’ll want to create a .env file and use the dotenv package to setup those values.

Make sure you add .env to your .gitignore file. Do not commit your .env file to your repository!!

Via the command line Jump to heading

Mac OS (or Linux, etc) Jump to heading

MY_ENVIRONMENT=production npx @11ty/eleventy

Windows cmd.exe Jump to heading

set MY_ENVIRONMENT=production & npx @11ty/eleventy

Windows Powershell (VS Code default) Jump to heading

$env:MY_ENVIRONMENT="production"; npx @11ty/eleventy

Via an npm script Jump to heading

You can also use the above commands in an npm script in your project’s package.json file.

Filename package.json
"scripts": {
"build:prod": "MY_ENVIRONMENT=production npx @11ty/eleventy"

Use Case Ideas Jump to heading

Eleventy Supplied Jump to heading

Node.js exposes environment variables under process.env.

Eleventy also supplies its own Eleventy-specific environment variables, usually intended for more advanced use cases. You can use these in your configuration or in data files as needed.

Other pages in Using Data: