Sentry-javascript: [рдлреАрдбрдмреИрдХ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ] рд╕рдВрддрд░реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрд╕рдбреАрдХреЗ v7 рдХрд╛ рд░реЛрдбрдореИрдк

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЕрдЧре░ 2020  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: getsentry/sentry-javascript

рд╣реЛрд▓рд╛ рдПрдорд┐рдЧреЛрд╕!

рд╕рдВрддрд░реА рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЙрдирдХреЗ рдХреЛрдб рдХрд╛ рдирд┐рджрд╛рди рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрд╕рдбреАрдХреЗ рдХреЗ рдПрдХ рдирдП рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рдЕрдм рддрдХ рдХрд╛ рдЕрдкрдирд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрдкрд╕реЗ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

_SDK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рджрд░реНрдж рдмрд┐рдВрджреБ рдХреНрдпрд╛ рд╣реИрдВ?_
_рдЖрдк рдХрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ?_
_рдЖрдк рдХреНрдпрд╛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?_

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рдХреБрдЫ рдореБрджреНрджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ:

  • IE10 рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкрджрд╛рд╡рдирдд рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝ рджреЗрдВ
  • рд╕рдордЧреНрд░ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░реЗрдВ
  • рдПрд╕рдбреАрдХреЗ рдХреЛ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓рд░ рдмрдирд╛рдПрдВ
  • рдЯреНрд░реА-рд╣рд┐рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдХреВрд▓рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВ
  • рдПрдХрд╛рдзрд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреАрдХрд░рдг/рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░реЗрдВ

рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдВ, рдФрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рдмрддрд╛рдПрдВ! рд╣рдо рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдЖрд╡рд╛рдЬрд╝ рдорд╛рдпрдиреЗ рд░рдЦрддреА рд╣реИред

рдЪреАрдпрд░реНрд╕!
рдХрд╛рдорд┐рд▓реЛ

Breaking Discussion

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░реЗ рд▓рд┐рдП drastically reduce overall bundle size -goal рднреА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рд╕рднреА 18 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░реА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╢рд┐рдХрд╛рдпрдд рд╣рдореЗрд╢рд╛ рдпрд╣ рдереА рдХрд┐ рдореЗрд░реА рдПрд░рд░ рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрд░реА рд╕рдмрд╕реЗ рдмрдбрд╝реА рдерд░реНрдб рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдмреЗрд╣рддрд░ рдкреЗрдЬ рд╕реНрдкреАрдб рд╕реНрдХреЛрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рдкрд╣рд▓реЗ рдкреЗрдЬ рд▓реЛрдб рдХреЗ 5-10 рд╕реЗрдХрдВрдб рдмрд╛рдж рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рд╕рдВрддрд░реА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ тЭдя╕П

рдореЗрд░реЗ рд▓рд┐рдП drastically reduce overall bundle size -goal рднреА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдирдорд╕реНрддреЗ,

рд╕рдордЧреНрд░ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░реЗрдВ

рдореИрдВ рдЗрд╕реЗ +1 рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдЧрд░ рдЗрд╕рд╕реЗ рдХреБрдЫ рднреА рдмрджрд▓рддрд╛ рд╣реИред рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝реВрдВрдЧрд╛: рдореЗрд░реЗ рд╡реЗрдм рдРрдк рдореЗрдВ , рд╕реЗрдВрдЯреНрд░реА рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ 30ms (рддреЗрдЬрд╝ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░) рд▓рдЧрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ, рдФрд░ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдРрдк рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рдЦрд░рд╛рдм рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдмрдВрдбрд▓рд░ (рдореЗрдЯреНрд░реЛ) рдкреЗрдбрд╝ рд╣рд┐рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрддрд░реА _78 рдлрд╝рд╛рдЗрд▓реЗрдВ_ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдореЗрдВ рдФрд╕рдд рд░реВрдк рд╕реЗ рдпреЛрдЧрджрд╛рди (рдХреБрдЫ%) рднреА рдХрд░рддрд╛ рд╣реИред

рдирдорд╕реНрддреЗ, рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рд╕реЗ рдмрд╕ рдХреБрдЫ рдбреЗрдЯрд╛:

image

рдпрд╣ рдЖрдИрдлреЛрди рдПрдХреНрд╕ рдкрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЙрдиреНрдЪ рдХреЗ рд╕рдордп рд╕рдВрддрд░реА рдХреЛ 54ms рдХрд╛ рднрд╛рд░реА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ - ~ 40 рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ~ 15 рдЬреЗрдПрд╕ рдХреЛрдб рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред _native_ рдкрдХреНрд╖ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рд╡рд╛рд▓реЗ ~ 30ms рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рд╕рдВрддрд░реА рдХреЗ JS рдХреЛ рд▓реЗрдХреНрд╕рд┐рдВрдЧ/рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рдмреЗрд╣рд┐рд╕рд╛рдм рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ) - рдореБрдЭреЗ 5-15ms рдкрд░ рд╕рдВрджреЗрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдареАрдХ рд╕реЗ рдорд╛рдкрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ - 90-100ms - рдпрд╣ рдореЗрд░реЗ рдРрдк рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдХреБрд▓ рд╕рдордп рдХрд╛ 15% рд╣реИ!

рдмрдврд╝рд┐рдпрд╛ рд╕рд╡рд╛рд▓! рдореИрдВ рдЙрддреНрдкрд╛рджрди рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рд▓реЙрдЧрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк (рдпрд╛ рдбреЙрдХреНрд╕ рдХреИрд╕реЗ рдХрд░реЗрдВ) рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрд┐рд╕реА рднреА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рд╕рд╛рдордиреЗ рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЙрдиреНрд╣реЗрдВ рдмреНрд░реЗрдбрдХреНрд░рдВрдм рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ https://github.com/getsentry/sentry/issues/12618 рдФрд░ https://github.com/getsentry/sentry-javascript/issues/1883 рдЬреИрд╕реЗ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрддрд░реА рдмреНрд░реЗрдбрдХреНрд░рдВрдм рдбреАрдмрдЧ рдпрд╛ рд▓реЙрдЧрд▓реЗрд╡рд▓ рдЬреИрд╕реЗ рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛ рд╕рдХреЗред рдпрд╣ рдЙрддреНрдкрд╛рджрди рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ DIY рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд░реНрдерд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдпрд╛ рдирд╣реАрдВред (рдпрд╛ рдЕрдЧрд░ рдпрд╣ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХрд┐рд╕реА рднреА рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛)ред рдзрдиреНрдпрд╡рд╛рдж!

рдирдорд╕реНрддреЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрд╕рдбреАрдХреЗ рдХреЗ рдЖрд░рдВрдн рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ рд╣реИред

рд╕реЗрдВрдЯреНрд░реА.рдЗрдирд┐рдЯ рдХреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрд╕рдбреАрдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реЗрдВрдЯреНрд░реАрдСрдкреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдбреАрдПрд╕рдПрди рдЖрдИрдбреА рдФрд░ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╛рдорд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ред

рд╣рдо рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреНрд░реЙрд╕ рдбреЛрдореЗрди рдЕрдиреБрд░реЛрдзреЛрдВ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореБрджреНрджреЛрдВ рдореЗрдВ рдмрдВрдбрд▓ рдЬреЗрдПрд╕ рдХреЗ рд▓реЛрдб рдЗрд╡реЗрдВрдЯ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕ рдЪрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪрдирд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ init рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

_SDK рдЗрд╡реЗрдВрдЯ_ рд╕рдВрдХреЗрдд рднреЗрдЬрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛

рдореИрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ capureEvent рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ - рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрддрд╛рд░рдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдСрдлрд╝рд▓рд╛рдЗрди-рдкреНрд░рдердо рдРрдкреНрд╕ (рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдРрдкреНрд╕) рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ред

рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдСрдирд▓рд╛рдЗрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдордЬреЛрд░ рдХрдиреЗрдХреНрд╢рди/рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рдЦрд░рд╛рдм рдиреЗрдЯрд╡рд░реНрдХ рдХрд╡рд░реЗрдЬ рд╡рд╛рд▓реЗ рдЧрд░реНрдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдпрд╛рддреНрд░рд╛ рдХрд░рдирд╛)ред

рдПрдХ рдСрдлрд╝рд▓рд╛рдЗрди рдПрдХреАрдХрд░рдг рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдСрдирд▓рд╛рдЗрди рдФрд░ рдСрдлрд▓рд╛рдЗрди рдШрдЯрдирд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред

рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдРрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрддрд░реА рджреНрд╡рд╛рд░рд╛ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдмрд╕ рд╢реВрдиреНрдп рдореЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдПрдХ рдкреАрдбрдмреНрд▓реВрдП рд╣реИ рдФрд░ рдРрдк рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛрдиреЗ рдкрд░ рдореБрдЭреЗ рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрддрд░реА рдирд┐рдЧрд▓рдирд╛ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИред

@edelvalle
рдпрд╣ рд╡рд░реНрдХрдмреЙрдХреНрд╕ рдФрд░ рдЗрд╕рдХреЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╕рд┐рдВрдХ рдкреНрд▓рдЧрдЗрди ~ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ ~
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдШрдЯрдирд╛ рдХреА рддрд╛рд░реАрдЦ рднреА рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рд╣реЛрддреА рд╣реИред

// service-worker.js
import { registerRoute } from 'workbox-routing'
import { NetworkOnly } from 'workbox-strategies'
import { BackgroundSyncPlugin } from 'workbox-background-sync'

registerRoute(
  new RegExp('^https://[^\\.]+\\.ingest\\.sentry\\.io/api/.*$'),
  new NetworkOnly({
    plugins: [
      new BackgroundSyncPlugin('project-name/sentry-event-queue', {
        maxRetentionTime: 7 * 24 * 60, // 7 days
      })
    ],
  }),
  'POST'
)

рдирдорд╕реНрддреЗ, drastically reduce overall bundle size рджреЗрдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреИрдЯреНрд╕рдмреА+рдкреНрд░реИрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдФрд░ рд╕рдВрддрд░реА рд╣рдорд╛рд░реЗ рдореБрдЦреНрдп рдмрдВрдбрд▓ рдЖрдХрд╛рд░ (95kb рдореЗрдВ рд╕реЗ 27kb) рдХрд╛ ~28% рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ рдкреНрд░рддрд┐ рдкреЗрдЬ рдЬреЗрдПрд╕ рдмрдВрдбрд▓ рдХреЛ 90kb рдХреЗ рдиреАрдЪреЗ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рдРрдк рдЦрд░рд╛рдм рдХрдиреЗрдХреНрд╢рди рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рдореАрдг рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд╕рдХреЗред рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╕рдВрддрд░реА рдПрд╕рдбреАрдХреЗ рдЖрдХрд╛рд░ рдмрд╣реБрдд рдорджрдж рдХрд░реЗрдЧрд╛ред

IE11 рд╕рдкреЛрд░реНрдЯ рдХреЛ рдХреНрдпреЛрдВ рди рдЫреЛрдбрд╝реЗрдВ? Microsoft рд╕рд╣рд┐рдд рдХрдИ рдмрдбрд╝реА рд╕рд╛рдЗрдЯреЗрдВ рд╕рд╛рд▓ рдХреЗ рдЕрдВрдд рддрдХ рдЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдВрдЧреАред рдмреЗрд╢рдХ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

@kamilogorek рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдЬрдм v6 рдЖ рд░рд╣рд╛ рд╣реЛ?

рдореИрдВ @ xr0master рд╕реЗ рднреА рд╕рд╣рдордд рд╣реВрдВ рдФрд░ рд╕реЛрдЪрддрд╛

рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рджрд░реНрдж рдмрд┐рдВрджреБ рдХреНрдпрд╛ рд╣реИ?

  • рдЖрдпрд╛рдд рдХрд░рдирд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рдкреЗрдбрд╝ рдХреА рдЕрд╕реНрдерд┐рд░рддрд╛", рдпрд╛ рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рдХреЗ рд╕рд╛рде рд╕рд╣реА рд╣реИред
// This is not nice, as it doesn't get auto-completion when importing
import * as Sentry from '@sentry/browser'

// This is better, but has given me problems on Sentry 5.x
import { captureException } from '@sentry/browser'
  • рдХреЙрд▓-рд╕реНрдЯреИрдХ рдбрд┐рдмрдЧрд┐рдВрдЧред рд╕рдВрддрд░реА рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ console.log рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ instruments.js:1 , рдЬреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╕рд╣рд╛рдпрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ console.trace рдУрд╡рд░рдХрд┐рд▓ рд╣реИ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ console.log рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмреНрд░реЗрдбрдХреНрд░рдВрдм рд▓рд┐рдЦрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВред

рдЖрдк рдХрд┐рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ AsyncLocalStorage рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ?

рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рддреНрд░ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛ рдЖрдЬ 6.0.0 рднреЗрдЬ рджрд┐рдпрд╛ред cc @OmgImAlexis
рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╢реАрд░реНрд╖рдХ рдмрджрд▓рдХрд░ v7 рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

Sentry.init рд╕реЗ рдЕрд▓рдЧ рдврд╛рдВрдЪреЗ рдХреЗ рдПрдХреАрдХрд░рдг рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрд╣ #3232 рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ Vue рдХреЛ рдЖрд▓рд╕реНрдп рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрддрд░реА рдЖрд░рдВрднреАрдХрд░рдг рд╕рдордп рдкрд░ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред Sentry.configureVue(Vue) рдЬреИрд╕рд╛ рдХреБрдЫ рдЬрд┐рд╕реЗ Vue рд▓реЛрдб рд╕рдордп рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдПрдХреАрдХрд░рдг рдЖрд▓рд╕реА рдЖрдордВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдорд╛рдзреНрдпрдорд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдРрдк рдХреЛ рд▓реЛрдб рдФрд░ рдЕрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рд░рд╛рдЙрдЯрд░ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

nicolezhu picture nicolezhu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

grigored picture grigored  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kishor-bhatt picture kishor-bhatt  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hinok picture hinok  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

franciscovelez picture franciscovelez  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ