ノードのサーバー側レンダリング環境に存在しないnode_module
グローバルを見つけることを期待しているサードパーティを使用しnavigator.useragent
ています。
一般的に、私たち自身のパッケージではimport { window } from '../utils/globals'
、window
機能を使用している場合ですが、これを編集することはできませんnode_module
。
window.navigator
この特定のパッケージ(またはすべてのパッケージ)を自動的に提供する方法がわかりません。Webpackを使用しているようには見えませんが、yarn / next / babelを使用しているようです。
コンパイル/トランスパイルプロセス中にグローバル変数を作成するにはどうすればよいですか?
解決策は、_app.jsx
クラス定義の前にグローバル/コンテキスト変数を作成することでした。
import App, { Container } from 'next/app';
if (typeof global.navigator === 'undefined') global.navigator = {};
// const navigator = {};
class MyApp extends App {
// ...
}
問題のあるパッケージをインポートする場所に追加しようとしましたが、うまくいきませんでした。サーバー側/クライアント側のレンダリングハンドオフの詳細についてはよくわかりません。おそらく、状況を処理するためのより洗練された、調整された方法があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加