言語サポートとツール
Cloudflare Pagesのビルド環境は、Ruby、Node.js、Python、PHP、Goなど、さまざまな言語を広くサポートしています。
特定の言語のバージョンを使用する必要がある場合(たとえば、Node.jsやRuby)、ビルド構成で関連する環境変数を指定するか、ソースコード内の関連ファイルを設定することで指定できます。
2023年5月に発表されたv2ビルドシステム ↗は、プロジェクトビルドにいくつかの改善をもたらします。この新しいバージョンに移行するには、ダッシュボードでPagesプロジェクトの設定を構成します:
- Cloudflareダッシュボード ↗にログインし、アカウントを選択します。
- Workers & Pages > 概要で、Pagesプロジェクトを選択します。
- 設定 > ビルドとデプロイ > ビルドシステムバージョンに移動し、最新のバージョンを選択します。
特に、含まれる言語とツールのデフォルトバージョンに変更を加えました。v2の選択、欠落しているツールや言語、またはv2への移行時に発生している問題についてフィードバックを送信するには、Cloudflare Developer Discord ↗に参加してください。
以前にビルドシステムのデフォルトバージョンの言語やツールに依存していた場合、v2に移行するとビルドが失敗する可能性があります。これを修正するには、使用したいバージョンを指定する必要があります。これらの言語やツールごとの詳細はこのページで確認できます。たとえば、v1ビルドシステムのデフォルトバージョンのNode.jsに依存していた場合、v2に移行するには、NODE_VERSION環境変数を設定するか、プロジェクトに.node-versionまたは.nvmrcファイルを追加してNode.js 12.18.0が必要であることを指定する必要があります。
v2ビルドシステムには、修正予定のいくつかの未解決の問題があることを認識しています:
- Node.jsのバージョンをコードネーム(たとえば、
hydrogenやlts/hydrogen)として指定すること。 yarn.lockファイルのバージョンからYarnのバージョンを検出すること。pnpm-lock.yamlファイルのバージョンに基づいてpnpmのバージョンを検出すること。package.jsonの"engines"からNode.jsとパッケージマネージャーを検出すること。pipenvとPipfileのサポート。
以下の表で、Cloudflare Pagesビルド環境に含まれるツールのプリインストールされたバージョンと、それをオーバーライドする方法を確認してください:
| Tool | Default version | Supported versions | Environment variable | File |
|---|---|---|---|---|
| Go | 1.21.0 | Any version | GO_VERSION | |
| Node.js | 18.17.1 | Any version | NODE_VERSION | .nvmrc, .node-version |
| Python | 3.11.5 | Any version | PYTHON_VERSION | .python-version, runtime.txt |
| Ruby | 3.2.2 | Any version | RUBY_VERSION | .ruby-version |
| Tool | Default version | Supported versions | Environment variable | File |
|---|---|---|---|---|
| Clojure | ||||
| Elixir | 1.7 | 1.7 only | ||
| Erlang | 21 | 21 only | ||
| Go | 1.14.4 | Any version | GO_VERSION | |
| Java | 8 | 8 only | ||
| Node.js | 12.18.0 | Any version | NODE_VERSION | .nvmrc, .node-version |
| PHP | 5.6 | 5.6, 7.2, 7.4 only | PHP_VERSION | |
| Python | 2.7 | 2.7, 3.5, 3.7 only | PYTHON_VERSION | runtime.txt, Pipfile |
| Ruby | 2.7.1 | Any version between 2.6.2 and 2.7.5 | RUBY_VERSION | .ruby-version |
| Swift | 5.2.5 | Any 5.x version | SWIFT_VERSION | .swift-version |
| .NET | 3.1.302 |
多くの一般的なツールは、Cloudflare Pagesビルド環境にプリインストールされています。プリインストールされたバージョンをオーバーライドするために利用可能な環境変数は、以下の表に指定されています:
| Tool | Default version | Supported versions | Environment variable |
|---|---|---|---|
| Bundler | 2.4.10 | Corresponds with Ruby version | |
| Embedded Dart Sass | 1.62.1 | Up to 1.62.1 | EMBEDDED_DART_SASS_VERSION |
| gem | 3.4.10 | Corresponds with Ruby version | |
| Hugo | 0.118.2 | Any version | HUGO_VERSION |
| npm | 9.6.7 | Corresponds with Node.js version | |
| pip | 23.2.1 | Corresponds with Python version | |
| pipx | 1.2.0 | ||
| pnpm | 8.7.1 | Any version | PNPM_VERSION |
| Poetry | 1.6.1 | ||
| Yarn | 3.6.3 | Any version | YARN_VERSION |
| Bun | 1.0.1 | Any version | BUN_VERSION |
| Tool | Default version | Supported versions | Environment variable |
|---|---|---|---|
| Boot | 2.5.2 | 2.5.2 | |
| Bower | |||
| Cask | |||
| Composer | |||
| Doxygen | 1.8.6 | ||
| Emacs | 25 | ||
| Gutenberg | (requires environment variable) | Any version | GUTENBERG_VERSION |
| Hugo | 0.54.0 | Any version | HUGO_VERSION |
| GNU Make | 3.8.1 | ||
| ImageMagick | 6.7.7 | ||
| jq | 1.5 | ||
| Leiningen | |||
| OptiPNG | 0.6.4 | ||
| npm | Corresponds with Node.js version | Any version | NPM_VERSION |
| pip | Corresponds with Python version | ||
| Pipenv | Latest version | ||
| sqlite3 | 3.11.0 | ||
| Yarn | 1.22.4 | Any version from 0.2.0 to 1.22.19 | YARN_VERSION |
| Zola | (requires environment variable) | Any version from 0.5.0 and up | ZOLA_VERSION |
Cloudflare Pagesプロジェクトで使用しているフレームワークの特定のバージョンを設定したい場合、Pagesはビルドプロセス中に選択したパッケージマネージャーを尊重します。たとえば、Gatsbyを使用している場合、package.jsonにはgatsby npmパッケージのバージョンを示す必要があり、Cloudflare Pagesでプロジェクトがビルドされる際にnpm installを使用してインストールされます。
Cloudflare Pagesのビルドは、gVisor ↗コンテナ内で実行されます。
| Build environment | Ubuntu |
| Architecture | x86_64 |
| Build environment | Ubuntu |
| Architecture | x86_64 |