Ni povas testi Sentry kun produktada konstruo enirante:
yarn build
kaj el la konstrua dosierujo enigu:
npx http-server -c-1
La problemo, kiun ni tuj renkontas, estas, ke la erarrekordoj de Sentry rilatas al linionumeroj en la minigita aro; ne tre utila.
La Servo-servo klarigas ĉi tion tirante la fontmapojn por la reduktita pako post ricevado de eraro. En ĉi tiu kazo ni kuras de localhost (ne alirebla de la servo Sentry).
Solvoj (Fonto-Mapoj)
La solvo al ĉi tiu problemo estas ruli la aplikaĵon de publika retservilo. Unu simpla respondbutono por uzi la GitHub Pages-servon (senpaga). La paŝoj por uzi estas kutime kiel sekvas:
Kopiu la enhavon de la dosierujo konstruu al dosierujo dokumentojn en la radika dosierujo de la deponejo.
Ŝalti Paĝoj GitHub en la deponejo (de GitHub) por uzi la dosierujon de dokumentoj enen majstro branĉoj
Premu ŝanĝojn al GitHub
Примечание: post kiam mi eltrovis, kion mi bezonas uzi krei-krei-apon ĉefpaĝa funkcio por lanĉi la aplikaĵon. Venis aldoni la jenon al package.json:
Pli bona traktado de nekalkulitaj eraroj (bildado)
Enkonduko de Eraraj Limoj
JavaScript-eraro en parto de la uzantinterfaco ne devas rompi la tutan aplikaĵon. Por solvi ĉi tiun problemon por uzantoj de React, React 16 enkondukas novan koncepton nomatan "eraraj limoj".
Erarlimoj estas React-komponentoj, kiuj kaptas JavaScript-erarojn ie ajn en sia infana komponentarbo, registras tiujn erarojn kaj prezentas rezervan UI anstataŭ la komponentarbo kiu kraŝis. Erarlimoj kaptas erarojn dum bildigo, en vivciklo-metodoj, kaj en la konstrukciistoj de la tuta arbo sub ili.
...
Nova konduto por nerimarkitaj eraroj
Ĉi tiu ŝanĝo estas signifa. Ekde React 16, eraroj kiuj ne estis kaptitaj de iu erarlimo rezultigos la tutan React-komponentarbon malmuntita.
Grava klarigo, kiu prenis min antaŭ ol mi komprenis ĉi tion, estas tio ĉi-supra konduto nur funkcias kun eraroj ĵetitaj en la rendermetodo (aŭ pli verŝajne en iu ajn el la vivciklo-metodoj). Ekzemple, uzi erarajn limojn ne utilus kun nia butono eraro; ĉi tiu eraro estis en la klaktraktilo.
Ni kreu ekzemplon de bildiga eraro kaj poste uzu erarlimojn por trakti la eraron pli gracie.
Kiam vi premas la butonon, Reagi estos montrata flago.rompita.falsa, kiu generas eraron
Sen erara limo, la tuta komponentarbo estos malmuntita
Tiam ni skribas nian eraran limkodon (uzas la novan vivciklon metodon componentDidCatch); tio estas esence la ekzemplo donita en la artikolo de Dan Abramov:
react-app/src/ErrorBoundary.js
import React, { Component } from 'react';
import * as Sentry from '@sentry/browser';
export default class ErrorBoundary extends Component {
constructor(props) {
super(props);
this.state = { hasError: false };
}
componentDidCatch(err, info) {
this.setState({ hasError: true });
Sentry.captureException(err);
}
render() {
if (this.state.hasError) {
return <h1>Something went wrong.</h1>;
}
return this.props.children;
}
}