JS エラー
このセクションでは、コミュニティから報告された、よく発生する JavaScript エラーを紹介します。
Require() of ES module
Section titled Require() of ES moduleこのエラー(および下記のエラー)は、サーバーサイドのコンテキスト(SSR、Nuxt、Next、Remix アプリなど)内でトラッカーをインポートしようとすると、一般的に発生します。
修正するには、動的インポートやクライアントコンポーネントなどを使用して、トラッカーがブラウザーのコンテキスト内でインポートおよび実行されるようにする必要があります。
ReferenceError: Navigator is not defined
Section titled ReferenceError: Navigator is not definedtracker-assist や tracker-fetch プラグインをインポートしようとすると、このエラーが発生することがあります。これは、node が環境に window API がない状態でページをビルドしようとするために起こります。
修正は非常にシンプルです。問題の原因となっているプラグインの通常のインポートを、次のように変更するだけです。
import trackerAssist from '@openreplay/tracker-assist/cjs';
componendDidMount または useEffect の代替処理の内部で動的にインポートするには、次のようにします。
import Tracker, { Options } from "@openreplay/tracker";
const tracker = new Tracker({ /* your options */ });
class TrackerComponent extends React.Component {
componentDidMount = () => {
import(‘@openreplay/tracker-assist/cjs’).then(({ default: trackerAssist }) => {
tracker.start(/* your options */)
tracker.use(trackerAssist(/* your assist options */))
})
}
/* Other code */
このようにすると、window API に依存するすべてのプラグインが、コンポーネントのレンダリング時にインポートされます。
Critical dependency: the request of a dependency is an expression
Section titled Critical dependency: the request of a dependency is an expression古いバージョンの tracker-assist プラグインで発生することがあります。コンパイル時に次のエラーが発生した場合は、この回避策を適用してください。
Failed to compile.
./node_modules/peerjs/dist/peerjs.min.js
Critical dependency: the request of a dependency is an expression
Uncaught DOMException: Blocked a frame with origin “X” from accessing a cross-origin frame
Section titled Uncaught DOMException: Blocked a frame with origin “X” from accessing a cross-origin frameOpenReplay トラッカーは、デフォルトで 同一ドメイン の iFrame をキャプチャします。ただし、Web サイトと同一ドメインではない iFrame をキャプチャしようとすると、エラーをスローします。次のいずれかの方法で対処できます。
- 以下の例のように、
captureIFramesプロパティを使用して、この機能全体を無効にします。
tracker.configure({
projectKey: PROJECT_KEY,
captureIFrames: false
});
- 同一ドメインの
<iframe>タグ だけ にdata-openreplay-captureHTML 属性を追加して、iFrame のキャプチャを継続します(デフォルトの動作)。こうすると、クロスオリジンの iFrame は OpenReplay によってトラッキングされません。
該当する問題が記載されていない
Section titled 該当する問題が記載されていないこのページに記載されていないエラーが発生した場合は、お気軽にIssue を作成するか、Slack までお問い合わせのうえ、コミュニティのサポートを受けてください。
ご質問はありますか?
Section titled ご質問はありますか?このプロセスについてご不明な点がありましたら、お気軽に Slack までお問い合わせください。