トラブルシューティング:デプロイ
macOSからCloudflare Pages(Linux)へデプロイする際によく発生する「プラットフォーム互換性」の問題について解説します。
問題の概要
Nextraで使用される @napi-rs/simple-git などのパッケージは、ネイティブバイナリに依存しています。
macOSで生成された package-lock.json には Mac用のバイナリ情報 (darwin-arm64) が記録されますが、Cloudflare上のLinux環境では Linux用バイナリ (linux-x64) が必要です。
この不一致により、npm ci 実行時に EBADPLATFORM エラーが発生します。
解決策
最も確実な方法は、Cloudflare側で依存関係をフレッシュに解決させることです。
1. package-lock.json をGitから除外する(推奨)
ローカルには残して構いませんが、リポジトリからは削除します。
git rm package-lock.json
git commit -m "Fix: Remove package-lock.json"
git push origin main2. ビルドコマンドを変更する
Cloudflare Pages の ビルド設定 で、コマンドを以下に変更します。
npm install && npm run buildnpm install はロックファイルがない場合(またあっても柔軟に)現在のプラットフォームに合わせてインストールを行ってくれます。