Skip to content

ビルドに使う Node のバージョンを固定する(予防) - #26

Merged
ryuuji merged 4 commits into
masterfrom
fix/pin-node-version
Aug 2, 2026
Merged

ビルドに使う Node のバージョンを固定する(予防)#26
ryuuji merged 4 commits into
masterfrom
fix/pin-node-version

Conversation

@ryuuji

@ryuuji ryuuji commented Aug 2, 2026

Copy link
Copy Markdown
Member

このPRでやること

ビルドに使う Node のバージョンを web/.node-versionengines.node で固定します。

いまは正常にビルドできています。予防のための変更です。

なぜ必要か

reform で Cloudflare Pages のビルドが失敗し、原因は
Node 12.18.0(Build Image v1 の既定)で実行されていたことでした。

このリポジトリも同じ構成(Cloudflare Pages + Node ビルド)で、
Node のバージョン指定がどこにもありません.node-version / .nvmrc / engines すべて無し)。

依存はすでに新しい Node を要求しています。

依存 要求する Node
sass@1.102.0 >=20.19.0
chokidar@5.0.0 >= 20.19.0
readdirp@5.0.0 >= 20.19.0

現在たまたま動いているのは、Cloudflare 側の設定が合っているためです。
Build Image の既定が変わるか、Dependabot が依存をさらに上げると壊れます。
reform はまさにその経路で壊れました(Dependabot が依存を上げ、Cloudflare が Node 12 のままだった)。

変更内容

ファイル 内容
web/.node-version(新規) 24
web/package.json "engines": {"node": ">=20.19.0"}

.node-version は Cloudflare Pages が読み取ります。
engines があると、手元で古い Node を使ったときにも警告が出ます。

確認したこと

  • Node 24 で npm ci && npm run build が通る
  • web/build/ に HTML・CSS・画像がすべて生成される(parcel のビルド完了を確認)
  • Cloudflare Pages の直近3回のデプロイは成功しており、このPRは現状を壊さない

補足

reform では Build Image を v1 → v3 に切り替えました。
このリポジトリの Build Image が v1 のままであれば、同様に v3 への切り替えをお勧めします。

Build Image v1 は 2026年9月15日に廃止されます。

reform で Cloudflare Pages のビルドが Node 12.18.0(Build Image v1 の既定)
で実行されて失敗していた。このリポジトリも同じ構成で、Node の指定が
どこにも無いため同じ問題が起きうる。

依存が要求する Node:
  sass@1.102.0      >=20.19.0
  chokidar@5.0.0    >= 20.19.0
  readdirp@5.0.0    >= 20.19.0

いまは動いているが、Build Image の既定が変わるか依存が上がると壊れる。
web/.node-version と engines.node で明示的に固定しておく。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 2, 2026

Copy link
Copy Markdown

Deploying openbookcamera with  Cloudflare Pages  Cloudflare Pages

Latest commit: 362a97a
Status: ✅  Deploy successful!
Preview URL: https://4a22eaf1.openbookcamera.pages.dev
Branch Preview URL: https://fix-pin-node-version.openbookcamera.pages.dev

View logs

ryuuji added 3 commits August 2, 2026 17:39
.node-version で 24 を指定しても、Cloudflare 側の設定(Build Image や
ルートディレクトリ)次第では読まれず、別の Node でビルドされうる。
そのとき今の構成では npm ci が警告を出すだけで先に進んでしまう。

reform では Cloudflare が Node 12 でビルドし続けていたのに、
古い成果物が配信され続けたため 7 か月気づかなかった。

engine-strict=true にしておけば engines.node を満たさない Node では
EBADENGINE で止まるので、静かに壊れる代わりにビルドが失敗して分かる。

Node 24 でクリーンインストールとビルドが通ることを確認済み。
一時的に >=24.0.0 にして Cloudflare が本当に Node 24 を使っているか
確認した。web/.node-version が読まれていることが分かったので戻す。
@ryuuji
ryuuji merged commit 6b952f9 into master Aug 2, 2026
2 checks passed
@ryuuji
ryuuji deleted the fix/pin-node-version branch August 2, 2026 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant