Cloudflare Pages のビルド時にロックファイルとは異なるバージョンのパッケージが使われるときの対処法
Published Mar 7, 2025
⋅
Updated Oct 28, 2025
Cloudflare Pages を使ったプロジェクトで開発をしているときに、開発時とデプロイ後のアプリケーションの挙動が異なることがあり、ビルドログを確認してみると、Git リポジトリ内にあるロックファイルとは異なるバージョンのパッケージが使われていた。
ビルドログの警告文は次の通りで、互換性がないロックファイルなので無視しているとのこと。
WARN  Ignoring not compatible lockfile at /opt/buildhome/repo/pnpm-lock.yamlCloudflare では、執筆時点でデフォルトで pnpm@8.7.1 が使われるが、開発中のプロジェクトでは新しい pnpm を使っていた。
なので、Cloudflare 側で使用する pnpm のバージョンを変更する。 Wrangler の設定ファイル(ここでは wrangler.json)に次の内容を追加する。
{
  // ...
  "vars": {
    "PNPM_VERSION": "10.5.2"
  }
}これでビルド時にこの環境変数が読まれ、pnpm@10.5.2 が使われる。例えば、次のようなビルドログになる。
10:00:00.000	Build environment variables: 
10:00:00.000	  - PNPM_VERSION: 10.5.2
 
# ...
 
10:00:00.000	Preparing pnpm@10.5.2 for immediate activation...ビルドログで WARN が表示されていた箇所は、次のような内容に変わる。
Lockfile is up to date, resolution step is skipped以上で、開発時の環境とビルド時の環境を揃えられる。
参考