Sentry-javascript: Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅: ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ обСщания Π±Π΅Π· ошибок зафиксировано с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ: currentTarget, isTrusted, target, type

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 20 Π°ΠΏΡ€. 2020  Β·  21ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: getsentry/sentry-javascript

ΠŸΠ°ΠΊΠ΅Ρ‚ + ВСрсия

  • [x] @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. ИмСя ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ , Π― Π½Π΅ знаю, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ эта ошибка , сталкивался Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ?

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚Π° ошибка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ исчСрпала мою ΠΊΠ²ΠΎΡ‚Ρƒ.

ВсС 21 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡Π°Π»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ это Π² послСдниС ΠΏΠ°Ρ€Ρƒ нСдСль. Π― Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π» ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ это, поэтому Ρƒ мСня Π½Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚.

Π’ΠΎ ΠΆΠ΅ самоС здСсь, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° Sentry v5.15.5.

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ссылку Π½Π° этот Ρ‚ΠΈΠΏ событий, записанных Π² Sentry? ΠŸΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ скрипта (ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° target ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ это событиС Π±Ρ‹Π»ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½ΠΎ)

@kamilogorek, Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹ ΠΏΡ€ΠΈΡΠ»Π°Ρ‚ΡŒ ΠΌΠ½Π΅ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ вашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ? ΠœΠΎΠ³Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ событий.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ большС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², я Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΈΡΠ»Π°Ρ‚ΡŒ ΠΈΡ… @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

К соТалСнию, я Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, смоТСм Π»ΠΈ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большСго количСства Ρ‚ΠΈΠΏΠΎΠ² Π²Π²ΠΎΠ΄Π°.
Если Ρƒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΎΠ± этом процСссС, я ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ для ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

(ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ здСсь, Π° Π½Π΅ Π½Π° Π²Π°ΡˆΡƒ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π²Π°Π»ΠΎΡΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ для всСх)

Из ΠΌΠΎΠΈΡ… наблюдСний:

  • Π­Ρ‚ΠΎ происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… послСдних вСрсиях Safari Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…;
  • Π’ ΠΌΠΎΠ΅ΠΌ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ установлСно нСсколько Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ZXing ΠΈ browser-image-compression , Π½ΠΎ Π½Π΅Ρ‚ сторонних скриптов отслСТивания;
  • ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, это происходит Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π·ΠΎΠ² API Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ с ошибкой сСти (ΠΊΠΎΠ΄ 0).
  • Π’ ΠΌΠΎΠ΅ΠΌ случаС это Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ 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 . Они Π΄Π΅Π»Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ , Ρ‡Ρ‚ΠΎ Π²Ρ‹ описываСтС здСсь

Бпасибо!!

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ