Next.js で xterm React コンポーネントを作成しようとしているときに、これまでに受け取ったことのないエラー メッセージが表示されて立ち往生しています。
xterm
という npm クライアント モジュールをインポートしようとしていますが、インポート行を追加するとアプリケーションがクラッシュします。
読み取りエラー サーバー エラー... 参照エラー: self が定義されていません
次に、このコードを Source
私が行ったいくつかの調査によると、これは Webpack に関係しており、次のようなことが行われると役立つかもしれません:
リーリーこの問題の解決方法を知っていますか?
このエラーは、ライブラリが動作するために Web API が必要であり、Next.js がサーバー側でページ を事前レンダリングするときに発生します。
あなたの場合、
Next.js では、これを実現する方法が複数あります。xterm
はサーバー上に存在しないwindow
オブジェクトにアクセスしようとしています。解決策は、#xxtermをサーバーにロードするのを避け、クライアントにのみロードされるように動的にインポートすることです。
#1
useEffect
を使用する
import内で動的
import()をコンポーネントの
#2useEffect
に移動し、ライブラリを動的にインポートしてそこにロジックを追加します。リーリー
next/dynamic
を
xtermssr: false
で使用します
コンポーネントを作成し、ロジックをそれに追加します。
リーリーリーリー
次に、使用時にコンポーネントを動的にインポートします。代替
として、next/dynamicを使用してライブラリを動的にインポートするときにロジックを直接追加し、余分なファイルの生成を避けることができます。 リーリー