パッケージを更新するか、yarn.lock を変更すると、NextJS API 呼び出しは開発環境では正常に機能しますが、運用環境では失敗します。
P粉128563140
P粉128563140 2024-03-28 11:50:32
0
1
486

何らかの理由で、パッケージを更新したり、yarn.lock を再調整したりすると、本番環境で NextJS (Vercel でホストされている) の API 呼び出しが失敗します。すべての API 呼び出し (単純な hello world であっても) は、インデックス ファイルと同様の HTML を返します。この問題の原因となるパッケージは、クライアント UI ライブラリである Mantine を更新することです。ただし、すべてのパッケージを特定のバージョン番号にロックし、yarn.lock がまったく変更されない場合でも、この問題が発生することに気付きました。

これは Vercel ログに表示されるエラーですが、Memberstack は認証の管理を担当するクライアント パッケージであるため、あまり役に立ちません。そして、私はこのパッケージをクライアントページでのみ使用します。

リーリー

package.json ファイルは次のとおりです:

リーリー

yarn.lock を削除してすべてのパッケージを再インストールしようとしましたが、これによって実稼働環境の API 呼び出しでもエラーが発生しました。唯一有効なのは、以前実稼働環境で動作していた同じyarn.lockファイルを直接コピーし、デプロイ時に使用することです。

つまり、基本的に、yarn.lock ファイルには触れられません。そうしないと実稼働環境が破壊されるか、特定のパッケージのみに触れることができます。

インストールしたパッケージに問題があるかどうかを確認しようとしています。パッケージをインストール/アップグレードするときに、yarn で何かする必要がありますか?それとも、これは NextJS と私が使用しているいくつかのパッケージとの間の互換性の問題でしょうか?

P粉128563140
P粉128563140

全員に返信(1)
P粉647449444

/var/task/node_modules/@memberstack/dom/lib/methods/index.js:45:5window にアクセスしようとしているようですが、NextJS が原因ですサーバー側レンダリング (SSR) が実行されますが、おそらく未定義です。

window を呼び出す前に typeof window === unknown を追加するか、NextJS の dynamic package を使用してメンバースタックをインポートするときに SSR を無効にすることをお勧めします。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート