スクリーンショートを確認しました。プレビューは正常に動いているのにデプロイだけ失敗しています。全設定ファイルをゼロから確実な状態で書き直します。
今回は全てのファイル内容が見えています。設定ファイルは全て正しいです。コンポーネントも確認します。
全コードを読みました。コード自体に問題はありません。"There was an error during deployment" は Vercel プラットフォーム側のビルドエラーです。next.config.mjs の ESM 形式が Next.js 16 + Vercel で問題を起こしている可能性が高いです。.mjs を削除して next.config.js (CommonJS) に統一します。
加えて、package.json の "type": "module" が設定されていないか確認し、もし設定されていたらビルドの .js CommonJS ファイルと競合するので確認が必要です。package.json には "type" フィールドがないことを確認済み -- 問題ありません。
それから、lucide-react のバージョン ^0.544.0 が最新すぎてビルド環境で解決できない可能性があるかもしれません。安定版に固定します。
lockfile も壊れている可能性があるので再削除してクリーンに再生成させます。
最後に、全てが正しいことを最終確認します。
next.config.mjs がなくなり、next.config.js のみになりました。pnpm-lock.yaml もリセットされます。tailwind.config.ts も残っていません。全設定が CommonJS で統一されました。
今回の修正で全ての設定ファイルが CommonJS (module.exports) に統一されました: next.config.js, postcss.config.js, tailwind.config.js。ESM の .mjs ファイルは完全に排除し、lucide-react も安定版に固定、pnpm-lock.yaml もクリーンな状態から再生成されます。Publish を再度お試しください。
スクリーンショートのエラーが見えました。原因が特定できました:
Module lucide-react@0.544.0 ... <export default as Sparkles>
factory is not available. It might have been deleted.lucide-react の ESM エクスポートが Next.js 16 の Turbopack と互換性がない問題です。即座に修正します。
エラー画面では lucide-react@0.544.0 が表示されていますが、package.json は 0.460.0 に設定済み。つまり 前の lockfile がキャッシュされてデプロイ側で古い 0.544.0 が使われている可能性があります。さらに、Turbopack の ESM 解決問題を回避するために transpilePackages を追加し、lockfile のクリーン再生成を強制します。
次にlucide-reactを完全に排除して、代わりにインラインSVGアイコンを使う方法も並行して適用します。これが最も確実です。全コンポーネントからlucide-reactのインポートを消します。
lucide-react は shadcn の UI コンポーネント (20ファイル以上) でも使われているので、全部を置き換えるのは現実的ではありません。transpilePackages で解決するのが正しいアプローチです。
ただし、エラー画面で 0.544.0 が使われていた点が問題です。lockfile のキャッシュが原因で古いバージョンが使われている可能性が高い。pnpm の overrides でバージョンを強制固定します。
lockfile を再削除して確実にクリーンビルドにします。
今回ようやくエラーの実際のメッセージが見えたので、確実な修正ができました。エラーは lucide-react の ESM エクスポートが Turbopack(Next.js 16 のデフォルトバンドラー)で正しく解決できない問題でした。2つの修正を行いました: (1) next.config.js に transpilePackages: ["lucide-react"] を追加し、Turbopack にモジュールを事前変換させる。(2) pnpm.overrides で lucide-react を 0.460.0 に強制固定し、前回の 0.544.0 がキャッシュから使われることを防止。Publish を再度お試しください。
You can send messages while the preview loads