Errores de JS
Esta sección enumera los errores de Javascript más frecuentes y reportados por nuestra comunidad.
Require() of ES module
Section titled Require() of ES moduleEste error (al igual que el de más abajo) suele ocurrir cuando intentas importar el tracker dentro de un contexto del lado del servidor (SSR, aplicaciones Nuxt, Next, Remix, etc.).
Para solucionarlo es necesario asegurarse de que el tracker se importe y se ejecute dentro del contexto del navegador, mediante importaciones dinámicas, componentes de cliente, etc.
ReferenceError: Navigator is not defined
Section titled ReferenceError: Navigator is not definedA veces este error ocurre cuando intentas importar los plugins tracker-assist o tracker-fetch, esto sucede porque node intenta construir la página sin la API window en el entorno.
La solución es bastante sencilla. Todo lo que tienes que hacer es cambiar la importación regular del plugin que causa el problema:
import trackerAssist from '@openreplay/tracker-assist/cjs';
A una importación dinámica dentro de componendDidMount o la alternativa 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 */
De esta manera, todos los plugins que dependen de la API window se importarán cuando el componente se renderice.
Critical dependency: the request of a dependency is an expression
Section titled Critical dependency: the request of a dependency is an expressionEsto puede ocurrir con versiones antiguas del plugin tracker-assist. Deberías aplicar esta solución alternativa si te encuentras con el siguiente error al compilar:
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 frameEl tracker de OpenReplay captura por defecto los iFrames del mismo dominio. Sin embargo, lanza un error cuando intenta capturar un iFrame que NO pertenece al mismo dominio que tu sitio web. Puedes:
- Desactivar toda la funcionalidad usando la propiedad
captureIFramescomo en el ejemplo de abajo:
tracker.configure({
projectKey: PROJECT_KEY,
captureIFrames: false
});
- Seguir capturando iFrames (comportamiento por defecto) añadiendo el atributo HTML
data-openreplay-captureúnicamente a las etiquetas<iframe>del mismo dominio. De esta manera, los iFrames de origen cruzado no serán rastreados por OpenReplay.
My problem is not listed
Section titled My problem is not listedSi te encuentras con algún error que no esté listado en esta página, no dudes en abrir un issue o simplemente contacta con nuestro Slack o consulta nuestro Foro para obtener ayuda de nuestra comunidad.
Have questions?
Section titled Have questions?Si tienes alguna pregunta sobre este proceso, no dudes en contactarnos en nuestro Slack o consultar nuestro Foro.