日本語デプロイトラブルシューティング

トラブルシューティング:デプロイ

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 main

2. ビルドコマンドを変更する

Cloudflare Pages の ビルド設定 で、コマンドを以下に変更します。

npm install && npm run build

npm install はロックファイルがない場合(またあっても柔軟に)現在のプラットフォームに合わせてインストールを行ってくれます。