Erros de JS
Esta seção lista os erros de JavaScript mais encontrados e relatados pela nossa comunidade.
Require() of ES module
Section titled Require() of ES moduleEste erro (assim como o de baixo) geralmente acontece quando você tenta importar o tracker em um contexto de servidor (apps SSR, Nuxt, Next, Remix etc.).
Corrigi-lo exige garantir que o tracker seja importado e executado dentro do contexto do navegador, por meio de imports dinâmicos, componentes de cliente etc.
ReferenceError: Navigator is not defined
Section titled ReferenceError: Navigator is not definedÀs vezes esse erro ocorre quando você tenta importar os plugins tracker-assist ou tracker-fetch. Isso acontece porque o node está tentando construir a página sem a API window no ambiente.
A correção é bem simples. Tudo o que você precisa fazer é alterar o import normal do plugin que está causando o problema:
import trackerAssist from '@openreplay/tracker-assist/cjs';
Para um import dinâmico dentro de componendDidMount ou da alternativa com 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 */
Dessa forma, todos os plugins que dependem da API window serão importados quando o componente for renderizado.
Critical dependency: the request of a dependency is an expression
Section titled Critical dependency: the request of a dependency is an expressionIsso pode acontecer com versões antigas do plugin tracker-assist. Você deve aplicar este workaround se encontrar o erro abaixo ao 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 frameO tracker do OpenReplay captura iFrames do mesmo domínio por padrão. No entanto, ele gera um erro ao tentar capturar um iFrame que NÃO seja do mesmo domínio do seu site. Você pode:
- Desativar toda a funcionalidade usando a propriedade
captureIFrames, como no exemplo abaixo:
tracker.configure({
projectKey: PROJECT_KEY,
captureIFrames: false
});
- Continuar capturando iFrames (comportamento padrão) adicionando o atributo HTML
data-openreplay-capturesomente às tags<iframe>do mesmo domínio. Dessa forma, os iFrames de origem cruzada não serão rastreados pelo OpenReplay.
Meu problema não está na lista
Section titled Meu problema não está na listaSe você encontrar erros que não estão listados nesta página, fique à vontade para abrir uma issue ou simplesmente falar conosco no nosso Slack para receber ajuda da nossa comunidade.
Tem dúvidas?
Section titled Tem dúvidas?Se você tiver alguma dúvida sobre este processo, fique à vontade para falar conosco no nosso Slack.