Cloudflare Docs
View GitHub RSS feed
Edit this page on GitHub
Set theme to dark (⇧+D)

Language support and tools

Cloudflare Pages’ build environment has broad support for a variety of languages, such as Ruby, Node.js, Python, PHP, and Go.

If you need to use a specific version of a language, (for example, Node.js or Ruby) you can specify it by providing an associated environment variable in your build configuration, or setting the relevant file in your source code.

​​ V2 build system

The v2 build system announced in May 2023 brings several improvements to project builds. To migrate to this new version, configure your Pages project settings in the dashboard:

  1. Log in to the Cloudflare dashboard and select your account.
  2. Select Workers & Pages > in Overview, select your Pages project.
  3. Go to Settings > Build & deployments > Build system version and select the latest version.

Notably, we have made changes to the default versions of languages and tools that are included. To submit feedback on v2’s selection, missing tools and languages, or problems you are experiencing when migrating to v2, join the Cloudflare Developer Discord.

If you were previously relying on the default versions of any languages or tools in the build system, your build may fail when migrating to v2. To fix this, you must specify the version you wish to use. Find details on how to do this for each of these languages and tools on this page. For example, if you were previously relying on the default version of Node.js in the v1 build system, to migrate to v2, you must specify that you need Node.js 12.18.0 by setting a NODE_VERSION environment variable or by adding a .node-version or .nvmrc file to your project.

We are aware of some outstanding issues with the v2 build system that we intend on fixing:

  • Specifying Node.js versions as codenames (for example, hydrogen or lts/hydrogen).
  • Detecting Yarn version from yarn.lock file version.
  • Detecting pnpm version detection based pnpm-lock.yaml file version.
  • Detecting Node.js and package managers from package.json -> "engines".
  • pipenv and Pipfile support.

​​ Supported languages and tools

In the following table, review the preinstalled versions for tools included in the Cloudflare Pages build environment, and how to override them as relevant:

LanguageDefault versionSupported versionsEnvironment variableFile
Elixir1.71.7 only
Erlang2121 only
Go1.14.4Any versionGO_VERSION
Java88 only
Node.js12.18.0Any versionNODE_VERSION.nvmrc, .node-version
PHP5.65.6, 7.2, 7.4 onlyPHP_VERSION
Python2.72.7, 3.5, 3.7 onlyPYTHON_VERSIONruntime.txt, Pipfile
Ruby2.7.1Any version between 2.6.2 and 2.7.5RUBY_VERSION.ruby-version
Swift5.2.5Any 5.x versionSWIFT_VERSION.swift-version
LanguageDefault versionSupported versionsEnvironment variableFile
Go1.21.0Any versionGO_VERSION
Node.js18.17.1Any versionNODE_VERSION.nvmrc, .node-version
Python3.11.5Any versionPYTHON_VERSION.python-version, runtime.txt
Ruby3.2.2Any versionRUBY_VERSION.ruby-version

Many common tools have been preinstalled in the Cloudflare Pages build environment. The environment variable available for overriding the preinstalled version is specified in the following table, as available:

ToolDefault versionSupported versionsEnvironment variable
Gutenberg(requires environment variable)Any versionGUTENBERG_VERSION
Hugo0.54.0Any versionHUGO_VERSION
GNU Make3.8.1
npmCorresponds with Node.js versionAny versionNPM_VERSION
pipCorresponds with Python version
PipenvLatest version
Yarn1.22.4Any version from 0.2.0 to 1.22.19YARN_VERSION
Zola(requires environment variable)Any version from 0.5.0 and upZOLA_VERSION
ToolDefault versionSupported versionsEnvironment variable
Bundler2.4.10Corresponds with Ruby version
Embedded Dart Sass1.62.1Up to 1.62.1EMBEDDED_DART_SASS_VERSION
gem3.4.10Corresponds with Ruby version
Hugo0.118.2Any versionHUGO_VERSION
npm9.6.7Corresponds with Node.js version
pip23.2.1Corresponds with Python version
pnpm8.7.1Any versionPNPM_VERSION
Yarn3.6.3Any versionYARN_VERSION
Bun1.0.1Any versionBUN_VERSION

If you want to set a specific version of a framework your Cloudflare Pages project is using, note that Pages will respect your package manager of choice during your build process. For example, if you use Gatsby, your package.json should indicate a version of the gatsby npm package, which will be installed using npm install as your project builds on Cloudflare Pages.

​​ Build environment

Cloudflare Pages builds are run in a gVisor container.

Operating systemUbuntu 20.04.5
Operating systemUbuntu 22.04.2