@sentry/browser
@sentry/node
raven-js
raven-node
_ (Π²ΠΎΡΠΎΠ½ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ·Π»Π°) _5.10.2
ΠΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΡΠΎ Π²ΡΡΠ²Π»ΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΡ, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ Event Non-Error, Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ: currentTarget, isTrusted, target, type οΌ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
__serialized__ = {
currentTarget: [object Null],
isTrusted: [Circular ~],
target: head > script[type="text/javascript"],
type: error
}
Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Event. ΠΠΌΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ οΌ Π― Π½Π΅ Π·Π½Π°Ρ, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° οΌ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ?
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΠ°Π»ΠΈ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΠ°ΡΡ Π½Π΅Π΄Π΅Π»Ρ. Π― ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π» ΠΈΠ·ΡΡΠ°ΡΡ ΡΡΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΅Π³ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ.
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π·Π΄Π΅ΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π° Sentry v5.15.5.
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΠΎΡ ΡΠΈΠΏ ΡΠΎΠ±ΡΡΠΈΠΉ, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ
Π² Sentry? ΠΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠ° (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° target
ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΎ)
@kamilogorek, Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΡΠΈΡΠ»Π°ΡΡ ΠΌΠ½Π΅ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ? ΠΠΎΠ³Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ.
@Santas [email protected]
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΈΡΠ»Π°ΡΡ ΠΈΡ @kamilogorek - ΠΏΡΠΎΡΡΠΎ Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ.
@sheelah Π΄Π°, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°
@sheelah, Π΅ΡΠ»ΠΈ onunhandledrejection
(ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ onerror
Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ OP).
https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ, ΡΡΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠ΄Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ Π²Π΅ΡΠΈ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Promise.reject("whatever")
ΠΈΠ»ΠΈ Promise.reject(jQueryBecauseWhyNot)
ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ JS.
ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ ΡΠ΅ΠΌ-ΡΠΎ, ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΡΠ΅ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Error
) ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ DOM, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΈΠ·Π²Π»Π΅ΡΡ Π»ΡΠ±ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π²Π»Π΅ΡΡ. ΡΡΠΎΠ³ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ eventbuilder.ts
ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΏΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΎ "Π»ΡΠ±ΠΎΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅", ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΡΠΎΠ±ΡΡΠΈΠΉ - https://github.com/getsentry/sentry-javascript/blob/master/packages/ Π±ΡΠ°ΡΠ·Π΅Ρ / src / eventbuilder.ts # L17 -L80
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΈΠΏΠΎΠ² Π²Π²ΠΎΠ΄Π°.
ΠΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΡΡ ΠΎΡΠ·ΡΠ²Ρ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅, Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
(ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π΄Π΅ΡΡ, Π° Π½Π΅ Π½Π° Π²Π°ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΠΎΡΠΊΡΡΡΡΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ )
ΠΠ· ΠΌΠΎΠΈΡ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠΉ:
ZXing
ΠΈ browser-image-compression
, Π½ΠΎ Π½Π΅Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ;ProgressEvent
, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ axios).ADDITIONAL DATA
__serialized__ | {
currentTarget: [object Null],
isTrusted: [Circular ~],
target: [object FileReader],
type: error}
-- | --
Π― ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΎΡΡΠ΅Ρ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Β«ΠΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ: nullΒ». ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» @ anton-bot Π²ΡΡΠ΅, Π·Π°ΡΡΠΎΠ½ΡΡΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Safari 13.1.2 Π² Mac OS X 10.15.6.
Π― ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π» ΡΠ²ΠΎΠΉ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² reject(
Π³Π΄Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ null
, Π½ΠΎ Π½Π΅ ΡΠΌΠΎΠ³ Π΅Π³ΠΎ Π½Π°ΠΉΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ½Π΅ Π±ΡΠ»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈΠ»ΠΈ ΡΡΠ΅ΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²Π΅ΡΠ΅ΡΠΈΠ½ΠΊΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠ°Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΡ
ΡΡΡ
Π°ΡΠ΅ΠΉ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
Π’Π°ΠΊΠΆΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Ρ ΡΡΠΎ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π΄Π²ΡΡ Π½Π΅Π΄Π΅Π»Ρ. ΠΠ° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ javascript API ΠΊΠ°ΡΡ Google, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΡΠ²ΡΡΠ²ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΡΠΈΠΌ. ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΠ΅ Π²ΠΈΠ΄Π΅Π» ΡΡΠΎ Π½Π° URL-Π°Π΄ΡΠ΅ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠ°ΡΡΡ Google?
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ: Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° iOS ΠΈ Android.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ: ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
{
currentTarget: [object Null],
isTrusted: [Circular ~],
target: head > script[type="text/javascript"],
type: error
}
@asbjornh nope Π£ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΠΊΠ°ΡΡ Google Π½Π° ΠΌΠΎΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅
@kamilogorek ΠΠΎΠ³ΡΡ Π»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ OP (ΠΈ ΠΌΠΎΠΈ) Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Ρ ΡΠ΅ΠΌ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ Promise.reject(new Event("error"))
? ΠΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΡ Sentry Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΡΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°?
@asbjornh Π΄Π°, Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ ΠΏΡΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ - https://github.com/getsentry/sentry-javascript/blob/caff9e7b308f99f04443d57d990c252a51a153bf/packages/browser/src/eventbuilder.ts#L97 -L107
Π― ΡΠΎΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΠΊΡΡ ββΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΈΡΡΠ΅ΡΠΏΠ°Π»Π° ΠΌΠΎΡ ΠΊΠ²ΠΎΡΡ.
Ρ Π½Π°Ρ Π΅ΡΡΡ 289 ΡΠ°ΠΊΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 24 ΡΠ°ΡΠ° - ΠΈ Π½Π°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Π΅ΡΠ΅ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ..
{
currentTarget: [object Null],
isTrusted: [Circular ~],
target: head > link,
type: error
}
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ next.js
ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π·Π΄Π΅ΡΡ Ρ cra π
ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ·Π²Π°Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ:
new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = src;
script.onload = resolve;
script.onerror = reject;
document.body.appendChild(script);
});
ΠΠ΅ΡΠ΅Ρ
Π²Π°ΡΡΠΈΠΊ onerror
ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ Event
Π²ΠΌΠ΅ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Error
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, Π·Π°ΠΊΠ»ΡΡΠΈΠ² Event
Π² Error
ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ https://developer.mozilla.org/de/docs/Web/API/HTMLScriptElement :
new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = src;
script.onload = resolve;
script.onerror = event => {
reject(new Error(`Failed to load ${event.target.src}`));
};
document.body.appendChild(script);
});
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π±ΡΠ» ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ Next.js 9.5.2
Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ Π΅Π³ΠΎ Π² Firefox, Π½Π° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡ
ΠΎΠΆΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ. (ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π·Π΄Π΅ΡΡ? https://github.com/getsentry/sentry-javascript/issues/2546#issuecomment-697771381) ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: https://github.com/vercel/next.js/pull/16757 ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎ 9.5.3
ΠΈΠ»ΠΈ Canary.
ΠΠ΄Π½Π°ΠΊΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠ° Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°:
Uncaught (in promise)
error
bubbles: false
...
...
as: "fetch"
assignedSlot: null
attributes: NamedNodeMap(3
0: href="/_next/data/wmQYPCwvbuBulJfEwTMRf/smartwatches/fitbit-ionic.json"
1: rel="prefetch"
2: as="fetch"
as: as="fetch"
href: href="/_next/data/wmQYPCwvbuBulJfEwTMRf/smartwatches/fitbit-ionic.json"
length: 3
rel: rel="prefetch"
...
...
β
isTrusted: true
originalTarget: <link href="/_next/data/wmQYPCwvbuBuβ¦tches/fitbit-ionic.json" rel="prefetch" as="fetch">
returnValue: true
srcElement: <link href="/_next/data/wmQYPCwvbuBuβ¦tches/fitbit-ionic.json" rel="prefetch" as="fetch">β
target: <link href="/_next/data/wmQYPCwvbuBuβ¦tches/fitbit-ionic.json" rel="prefetch" as="fetch">
timeStmp: 25366
type: "error"
...
ΠΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Sentry ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅?
@ Turbo87 ΠΠ! ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
@googlemaps/js-api-loader
. ΠΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ , ΡΡΠΎ Π²Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ Π·Π΄Π΅ΡΡ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!!
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΈΡΡΠ΅ΡΠΏΠ°Π»Π° ΠΌΠΎΡ ΠΊΠ²ΠΎΡΡ.