@sentry/browser
@sentry/node
raven-js
raven-node
_ïŒããŒãã®ã¬ã€ãŽã³ïŒ_4.0.2
@ sentry / browserã®ãµã€ãºã¯raven-jsã®ãµã€ãºã®2å以äžã§ãïŒ86kB察39kBïŒçž®å°ïŒã ç§ã®æèŠã§ã¯ãããã¯ééããªããªã°ã¬ãã·ã§ã³ã§ãããæ°ããããŒãžã§ã³ã«æŽæ°ããªãé倧ãªçç±ã§ãã
ããããããæã£ãŠããŠãããŠããããšãã
ãã³ãã«ãµã€ãºã«é¢ããæžå¿µãç解ããäžè¬çã«åæããŸãããå§çž®ãããŠããªãçž®å°ãã¡ã€ã«ãµã€ãºã§ã¯ãªããæåã«gzipãã³ãã«ãµã€ãºãæ¯èŒããã®ã劥åœã ãšæããŸãã
@sentry/browser
ã¯21.3799 KB
raven-js
13.44 KB
ãŸããããã¯ãã¹ãŠã®äººã«åœãŠã¯ãŸãããã§ã¯ãããŸããããéåžžãWebãµã€ãã«SDKãã»ããã¢ããããCDNããŒããŒã䜿çšããããã«äººã ã«æäŸããã¬ã€ãããŸãã
åç §ïŒ https ïŒ//docs.sentry.io/quickstart/ïŒplatform = browser
ãã®ã¹ã¯ãªããã®ãããããªã³ããšããŒãžèªã¿èŸŒã¿æéãžã®åœ±é¿ã¯ãåãæ©èœãç¶æããªãã1KBæªæºã§gzipå§çž®ãããŸãã
ã ããtl; drïŒ
ç§ãã¡ã¯ãããèªèããŠãããæ¹åã®äœå°ãããããšã¯ããã£ãŠããŸãããçŸæç¹ã§ã¯æåªå
äºé
ã§ã¯ãããŸããã
å§çž®ãããŠããªãçž®å°ãã¡ã€ã«ãµã€ãºã§ã¯ãªããæåã«gzipãã³ãã«ãµã€ãºãæ¯èŒããã®ã劥åœã ãšæããŸãã
ããã©ãŒãã³ã¹ã®åé¡ã¯javascriptã®ããŠã³ããŒãã ãã§ãªãã解æãšå®è¡ãããçºçãããããçž®å°ããããµã€ãºãæ¯èŒããããšãå ¬æ£ã§ãããšç§ã¯äž»åŒµããŸãã ã92kbã¯éåžžã«å€§ãããããŒãšã³ãããã€ã¹ã§æ倧1ç§ã®è§£ææéãè¿œå ããå¯èœæ§ããããŸãïŒãã®1ã€ã®ã©ã€ãã©ãªã ãã§ãïŒïŒã
CDNãããã¹ã¯ãªããã®< 1KB
ã®æ°ãã©ãããååŸãããããããŸããã 詳现ãæããŠããã ããŸããïŒ https://browser.sentry-cdn.com/4.0.4/bundle.min.js
ãéããšã22KBã®gzipå§çž®ãµã€ãºã衚瀺ãããŸãã
ã»ã³ããªãŒã®SDKã¯ãéçºè ãå«ããå€ãã®ã©ã€ãã©ãªã®1ã€ã«ãããªãããšã«æ³šæããŠãã ããã
PSïŒç§ã¯æ©åšã倧奜ãã§ããããã¯ç§ãã¡ã«ãšã£ãŠéåžžã«åœ¹ã«ç«ã¡ãŸããã Webããã©ãŒãã³ã¹ã¯ãç§ãæ ç±ã泚ãã§ãããã®ã§ãã ;ïŒ
@klaemo
ãµãµãå¿é
ãããŸããð
ç§ãèšã£ãããã«ãç§ãã¡ã¯æ°ã¥ããŠããŸãããããŠããã¯ç§ãã¡ããããå°ããããããªããšããããã§ã¯ãããŸããã
ç§ãã¡ã«ãšã£ãŠæé«ã®åªå
äºé
ã¯ãæ°ããSDKãåºè·ããããšã§ãããä»åŸããã³ãã«ãµã€ãºã®æ¹åã«åãçµãã§ãããŸãã
å®è¡ã§ããæé ã¯ä»ã«ããããããããŸããããšãã°ã tslib
ãæååãçµåããŸã...
ãããã£ãŠãæ¹åã®äœå°ã¯ãããããããŸãã
ç³ãèš³ãããŸãããã以åã«æçš¿ãããªã³ã¯ã¯ãã§ã«å€ããªã£ãŠããŸãð
ç§ã¯_Loader_ãåç
§ããŠããŸããïŒ https ïŒ//docs.sentry.io/platforms/javascript/loader/
_Loader_ã«ããéåæã®æ§è³ªã«ããå¶éããããŸãããæçµçã«ã¯ãSDKããã§ããããŠæ¿å
¥ããŸãïŒéåæã§ãã£ãŠãïŒãããã¯ã人ã
ãæ±ããŠãããããSDKãæäŸãã代æ¿æ段ã§ãã
@HazATç³ãèš³ãããŸãããã次ã®ããŒãžã§ã³ã®ãªãªãŒã¹æ¥ãæããŠããã ããŸããïŒ
ã€ãŸããïŒmasterãã©ã³ãã«ã¯ãã§ã«ããã€ãã®å€æŽããããŸããããŸã ãªãªãŒã¹ãããŠããŸããã ãã ããAngular5 +ãããžã§ã¯ãã§ã¯4xããŒãžã§ã³ã䜿çšã§ãããšå€æããŠããŸãã
@rayzru 4.0.5
ããªãªãŒã¹ããã°ããã§ããããããã¯ã«é¢é£ããæçš¿ãæ®ããŠãã ããã
ç§ã®æèŠã§ã¯ãããã¯ééããªããªã°ã¬ãã·ã§ã³ã§ãããæ°ããããŒãžã§ã³ã«æŽæ°ããªãé倧ãªçç±ã§ãã
ð¯ç§ã¯ããã«æ°ä»ããŸã§ã¢ããã°ã¬ãŒãããããšããŠããŸããïŒ
å°ãªããšãããã±ãŒãžãµã€ãºã¯å°ããã§ãããâ ïžãã³ãã«å ã®gzipå§çž®ãããJavaScriptã®â ïž + 10KBã¯éèŠã ãšæããŸãã ç§ãã¡ã¯åŸ ã£ãŠãè¯ãä»äºãç¶ããŸã:)
@HazATesmãã¡ã€ã«ãçæããããšã¯å¯èœã§ããããã ããã«ãããWebpackã¯é£çµãšããªãŒã®æºãã§ããè¯ãçµæãåŸãããšãã§ããŸãã
ããŒãžãªã¯ãšã¹ãããšã«ããã±ãŒãžã®ãã³ãã«ãµã€ãºã远跡ããCIããŒã«ãè¿œå ããããšããå§ãããŸãã ãã®åé¡ãå®éã«100kBã«å¢å ããããã httpsïŒ //bundlephobia.com/resultïŒp = @ sentry / browser @ 4.3.0ãåç §ããŠãã ããã
ããšãã°ã httpsïŒ//github.com/siddharthkp/bundlesizeãè©ŠããŠãã ãã
Webpackã®ãšã³ããªãã€ã³ãã®ããã©ã«ãã®ããã©ãŒãã³ã¹ããžã§ããã¯250kbã§ãã©ã®ããã€ã¹ããããã¯ãŒã¯ã§ãé©åãªããã©ãŒãã³ã¹ã確å®ã«åŸãããšãã§ããŸãã ã»ã³ããªãŒã®100kbã¯ããã®äºç®ã®ããªãã®éšåãå ããŸãã
ãã®ãªã°ã¬ãã·ã§ã³ã®ä¿®æ£ãããŒããããã«ããå ŽåããŸãã¯ã©ã€ãã©ãªããµã€ãºã®äºç®ãªãã§æé·ãç¶ããå Žåã¯ãææ°æ å ±ãå ¥æããŠãã ããã
ç§ãã¡ã¯é¡§å®¢ã«æ¯æããããŠãããããã¯ãšã³ãããã€ãã£ããWebã®äž¡æ¹ã§Sentryã«å€é¡ã®æè³ãè¡ã£ãŠããŸãããã©ã€ãã©ãªã®ãµã€ãºã®3å以äžïŒ[email protected]ã¯31 kBïŒã«ã¢ããã°ã¬ãŒãããããšã¯æ£åœåã§ããŸããã
@jacobraskå€ãããŒãžã§ã³ã®ã©ã€ãã©ãªã«åºå·ããããšãã§ããŸããããã¯ã httpsïŒ //www.onepixel.com/ã§è¡ã£ãŠããããšã§ãããæ£åžžã«æ©èœããŠããŸãðã
@jacobraskããã¯ééããªãç§ãã¡ã®ãªã¹ãã«ããããã³ãã«ãµã€ãºãç°¡åã«æžããããšãã§ããããã€ãã®ã¶ãäžãã£ãŠããæç©ããããšæããŸãã
ãŸããŸãå€ãã®äººããããæ±ããŠããã®ã§ãããããäºæ³ãããæ©ãããã«åãçµãã§ãããã
@HazAT
Sentryãã©ãŠã¶SDKããŒã«ã¢ãããã³ãã«ãæé©åã§ããŸãã ãã³ãã«minjsãã¡ã€ã«ã«ã¯ãç¹°ãè¿ãããå€ãã®tslibã³ãŒãããããŸãã __generatorã__ assignãªã©ã ãã©ãŠã¶ç°å¢ã§ã¯ã1ã€ã®ã³ãŒããå
±æããã®ãæåã§ãã ãã ãããã©ãŠã¶ãããžã§ã¯ãã¯å¥ã®ããã±ãŒãždistãã¡ã€ã«ã䜿çšããŸãã ãã¶ãgzipãµã€ãºã23Kãã16Kã«æžãããŠãã ããã
ãã³ãã«ãµã€ãºã¯4.3.2ã§ãåãã§ã
https://bundlephobia.com/result?p=@sentry/browser @ 4.3.2ããã®å€æŽã«é¢ä¿ãªãã
https://github.com/getsentry/sentry-javascript/pull/1738 :(
@vkrolå°ãªããšãnpmããã±ãŒãžã§ã¯ã @ gaterkingãè¡ã£ãå€æŽãå
ã«æ»ãå¿
èŠããããŸããã
äžæ¹ãCDNã®ãã³ãã«ã¯ãã£ãšå°ããããå¿
èŠããããŸãã
確ãã«å€æŽãå床远å ããŸãããããšãã°tslib
ã«äŸåããå¿
èŠããããããããã«ã€ããŠè©±ãå¿
èŠããããŸãã
ãŸããã¿ã€ãã³ã°ãã©ã®ããã«çæãããããå£ããŠããŸããã
@HazAT OKãããããšãã
@vkrolå°ãªããšãnpmããã±ãŒãžã§ã¯ã @ gaterkingãè¡ã£ãå€æŽãå ã«æ»ãå¿ èŠããããŸããã
äžæ¹ãCDNã®ãã³ãã«ã¯ãã£ãšå°ããããå¿ èŠããããŸãã確ãã«å€æŽãå床远å ããŸãããããšãã°
tslib
ã«äŸåããå¿ èŠããããããããã«ã€ããŠè©±ãå¿ èŠããããŸãã
ãŸããã¿ã€ãã³ã°ãã©ã®ããã«çæãããããå£ããŠããŸããã
ã§ããã ãæ©ãé¡ã£ãŠããŸãã
@ gaterking @ kamilogorekãã§ã«ä¿®æ£æžã¿https://github.com/getsentry/sentry-javascript/pull/1751
ãç·æ¥ããªãªãŒã¹ãå®è¡ããå¿
èŠããã£ããããå
ã«æ»ããŸããã
ã¯ã©ã€ã¢ã³ãåŽã§ã¯ãåºæ¬çã«ããã§ãšã©ãŒããã£ããã£ããŠAPIã«éä¿¡ããå¿ èŠããããŸãã
ãã®ã©ã€ãã©ãªãããã»ã©è€éãªããšãããŠããä»ã«äœããããŸããïŒ
ããåçŽãªãšã©ãŒã¬ããŒã¿ãŒããã®ãããªããªãã®ãããããªã³ããå¿ èŠãšããçç±ãç解ããã®ã¯æ¬åœã«é£ããã§ãð
@ mindplay-dkããã¯äž»ã«JavaScriptãšãã©ãŠã¶ãæ··ä¹±ããŠããããã§ã^^
å£ãã/ééã£ãã¹ã¿ãã¯ãã¬ãŒã¹ãä¿®æ£ããããã«å€ãã®ããšãè¡ãå¿
èŠããããŸãã
ããšã©ãŒããã£ããããããšããåçŽãªã¿ã¹ã¯ããèŠãç®ãããã¯ããã«è€éã§ãã
ããåçŽãªãšã©ãŒã¬ããŒã¿ãŒããã®ãããªããªãã®ãããããªã³ããå¿ èŠãšããçç±ãç解ããã®ã¯æ¬åœã«é£ããã§ãð
@ mindplay-dkããã¯åçŽã§ã¯ãªãããã§ãã
ãã¹ãŠã®ãã©ãŠã¶ã§ãšã©ãŒããã£ããã£ãããããã䜿çšå¯èœãªããŒã¿æ§é ã«çµ±åããããã®ã³ãŒãã¯æ¬¡ã®ãšããã§ãïŒ https ïŒ//github.com/getsentry/sentry-javascript/blob/master/packages/browser/src/tracekit.ts
æè¿ã®ãµã€ãºçž®å°ã§ãããã£ãã倧ãã«æè¬ããŸãã ð
ãªã³ã¯ããããã¡ã€ã«ãã²ãšç®èŠããšãOpera 10ã®ãšã©ãŒãåŠçããããã®ã³ãŒãã衚瀺ãããŸãããããã§ãæ¬åœã«å¿ èŠã§ããïŒ TraceKitã¯ããã§ã«å€§ããã£ãRavenããã®ïŒçŸåšã®ïŒ2åã®ãµã€ãºã®å¢å ãèæ ®ããŠããŸããã
ããã€ãã®ææ¡ïŒ
package / coreãªã©ã®å¥ã®ããã±ãŒãžã«å
±æã³ãŒãïŒrewriteframes.tsã®app:///${base}
ïŒã¯ãããŸããïŒ ãããã¯ã¯ã©ã€ã¢ã³ãã§ã¯äœ¿çšãããŸããããããŒãã§äœ¿çšãããŸãã
åçŽã§ã¯ãªãããã§ãã
@kamilogorek yikes ãããªãã¯æããã«æ£ããã§ã...ç§ã¯JavaScriptãæ··ä¹±ããŠããããšã«æ°ã¥ããŸãã-ç§ã¯ãããŸã§ãã®åéãæãäžããããšããªãã£ããšæããŸãããããã©ãã»ã©æªããã¯ããããŸããã§ããã JSã§ã¹ã¿ãã¯ãã¬ãŒã¹ãåŠçããç°¡åãªæ¹æ³ã¯æ¬åœã«ãªããšæããŸãã ãã ã ãããã ð
ãã«ããŒãæå°åããããšãã代ããã«ããã§ã«è¿°ã¹ãesmãã¡ã€ã«ãæäŸããã ãã§æžã¿ãŸããããã¯ç°¡åã§ãä»æ¥ã®ãã¹ããã©ã¯ãã£ã¹ã§ãããããŸãã
async / awaitã®äœ¿çšãæžãããŠãã ãããES5ãžã®ã³ã³ãã€ã«ãäžååã§ãã https://github.com/getsentry/sentry-javascript/blob/master/packages/core/src/baseclient.ts#L307 -L378ãåºåã³ãŒããšæ¯èŒããŸãïŒæ¬çªãã³ãã«ã§ãprocessEventããæ€çŽ¢ããŸãïŒã ãã®ãã¡ã€ã«å šäœãæ¬çªãã³ãã«ã§å·šå€§ã«ãªããŸãã
ããã¯ééã£ãæ¹æ³ã§ããES5çšã«ããã«æé©åããã®ã§ã¯ãªããææ°ã®ãã©ãŠã¶ãŒã䜿çšããŠãã80.07%
çšã«æé©åããããšãããéèŠã§ãã
å€ããã©ãŠã¶ã®ãµããŒããå¿
èŠãªãã¹ãŠã®äººã®ããã«ïŒ
éåæé¢æ°ã¯<script type="module">
ããµããŒããããã¹ãŠã®ãã©ãŠã¶ãŒã§ãµããŒããããŠããããïŒcaniuseïŒ esm ã async ïŒãå€ããã©ãŠã¶ãŒã®ãŠãŒã¶ãŒã®ã¿ãããé·ãåŸ
ã€å¿
èŠããããŸãïŒãšã«ããæéãããããŸãïŒ
蚌æ ïŒ
160KBïŒes5ããã³ãã«ïŒ> 119KBïŒesmããã¬ãŒã³ãã¡ã€ã«ïŒ
ãããã£ãŠãesmãã¡ã€ã«ãïŒããŸãã«ãïŒãã³ãã«ããŠãã ããã /tsconfig.esm.json
ïŒ tsconfig.build.json
ãæ¡åŒµïŒã®èšå®module
ãštarget
ã$ïŒ esnext
ã«å€æŽããã®ãšåããããç°¡åã§ãã tsconfig.build.json
ïŒ$ãã¡ã€ã«ãšåæ§ã®tsconfig.esm.json
$ãã¡ã€ã«ãããã±ãŒãžã«è¿œå ãããã«ããšããã±ãŒãžã«è¿œå ããŠã package.json
ã®ã¢ãžã¥ãŒã«ãšã³ããªãæå®ããŸã
å¿ èŠã«å¿ããŠããã®ããã®PRãè¿œå ã§ããŸãã
å¿ èŠã«å¿ããŠããã®ããã®PRãè¿œå ã§ããŸãã
@cromefireã倧奜ãã§ã:)
vue cliã®ããã«ãã¯ã©ã·ãã¯ã¢ãŒããšã¢ãã³ã¢ãŒãã®ã©ã¡ãããéžæãããªãã·ã§ã³ãããã°çŽ æŽãããã§ãããã ææ°ããŒãžã§ã³ã¯ã»ãšãã©ã®ææ°ãã©ãŠã¶ã®ã¿ããµããŒãããŠãããããè¥å€§åãå°ãªãå¯èœæ§ããããŸãã
ãŸãã¯ãwebpack envã®ããã«æ©èœããŠããŠãŒã¶ãŒãå¿ èŠãªãã©ãŠã¶ãŒãµããŒããæå®ã§ããããã«ãããšããã«å¹æçã§ãã å€ãã®å Žåãããã¯ç°¡åãªæ©èœã§ã¯ãããŸãããããããæšãŠããã£ãã ãã§ã:)
çŽ æŽããã補åã§ãïŒ
ãã®æ°ããPRã䜿çšãããšãbabelãæ§æã§ããŸãããå¿ èŠãªãã©ãŠã¶ãŒã®ã¿ããµããŒãããå¿ èŠããããŸã
@ sentry / browserã®ãµã€ãºã¯raven-jsã®ãµã€ãºã®2å以äžã§ãïŒ 86kB察39kBïŒçž®å°ïŒã
åèïŒ @sentry/browser
ã®ææ°ããŒãžã§ã³ã®ãµã€ãºã¯91.8kBã«å¢å ããŸããã åºå
žïŒ https ïŒ//bundlephobia.com/resultïŒp = @ sentry / browser @ 4.5.0
@cromefireã©ã€ãã©ãªãµã€ãºã®æé©åã«ãååããã ãããããšãããããŸãã
v4.5.0ããã®æ°ããesmãã«ãã䜿çšããããšããŸããããå€ãã®ãšã©ãŒãçºçããŸããã @sentry/utils/esm
ã®ã¢ãžã¥ãŒã«ã解決ã§ããªãã£ããããããããã¹ãŠãããªã¬ãŒãããŸãã
å®éãæ°ããyarn install
ã®åŸã§ãnode_modulesã«ãã©ã«ããŒãèŠã€ãããŸããã§ããã ïŒã¹ã¯ãªãŒã³ã·ã§ãããåç
§ïŒ
å®å
šãªãšã©ãŒãªã¹ã
./node_modules/@sentry/core/esm/baseclient.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / asyncãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/backend.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esmãã®ã@sentry / utils / esm / isãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/tracekit.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esmãã®ã@sentry / utils / esm / isãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/breadcrumbs.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / isãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/helpers.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / isãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/pluggable/vue.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / browser / esm / integrations / pluggable'ã®ã@sentry / utils / esm / isãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/baseclient.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / isãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/dsn.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / isãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integrations/inboundfilters.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esm / integrationsãã®ã@sentry / utils / esm / isãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integrations/extraerrordata.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esm / integrationsãã®ã@sentry / utils / esm / isãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/globalhandlers.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / loggerãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/breadcrumbs.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / loggerãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/baseclient.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / loggerãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/basebackend.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / loggerãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/sdk.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / loggerãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integration.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / loggerãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integrations/dedupe.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esm / integrationsãã®ã@sentry / utils / esm / loggerãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integrations/sdkinformation.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esm / integrationsãã®ã@sentry / utils / esm / loggerãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integrations/inboundfilters.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esm / integrationsãã®ã@sentry / utils / esm / loggerãã解決ã§ããŸãã
./node_modules/@sentry/hub/esm/hub.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / hub / esm'ã® '@ sentry / utils / esm / logger'ã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/client.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esmãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/tracekit.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esmãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/useragent.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/breadcrumbs.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/trycatch.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/helpers.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/pluggable/reportingobserver.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / browser / esm / integrations / pluggable'ã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/pluggable/vue.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / browser / esm / integrations / pluggable'ã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/pluggable/ember.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / browser / esm / integrations / pluggable'ã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/transports/beacon.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / transportsãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/transports/fetch.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / transportsãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/baseclient.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integrations/dedupe.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esm / integrationsãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integrations/inboundfilters.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esm / integrationsãã®ã@sentry / utils / esm / miscãã解決ã§ããŸãã
./node_modules/@sentry/hub/esm/scope.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / hub / esm'ã® '@ sentry / utils / esm / misc'ã解決ã§ããŸãã
./node_modules/@sentry/hub/esm/hub.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / hub / esm'ã® '@ sentry / utils / esm / misc'ã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/parsers.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esmãã®ã@sentry / utils / esm / objectãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/breadcrumbs.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / objectãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/trycatch.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / objectãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/helpers.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / objectãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/api.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / objectãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/basebackend.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / objectãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/dsn.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / objectãã解決ã§ããŸãã
./node_modules/@sentry/hub/esm/scope.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / hub / esm'ã® '@ sentry / utils / esm / object'ã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integrations/pluggable/rewriteframes.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / core / esm / integrations / pluggable'ã®ã@sentry / utils / esm / pathãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/parsers.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esmãã®ã@sentry / utils / esm / stringãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/breadcrumbs.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / stringãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/baseclient.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esmãã®ã@sentry / utils / esm / stringãã解決ã§ããŸãã
./node_modules/@sentry/core/esm/integrations/inboundfilters.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / core / esm / integrationsãã®ã@sentry / utils / esm / stringãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/backend.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esmãã®ã@sentry / utils / esm / supportsãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/breadcrumbs.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / integrationsãã®ã@sentry / utils / esm / supportsãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/integrations/pluggable/reportingobserver.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒ './ node_modules / @ sentry / browser / esm / integrations / pluggable'ã®ã@sentry / utils / esm / supportsãã解決ã§ããŸãã
./node_modules/@sentry/browser/esm/transports/fetch.jsã®ãšã©ãŒ
ã¢ãžã¥ãŒã«ãèŠã€ãããŸããïŒãšã©ãŒïŒãã/node_modules / @ sentry / browser / esm / transportsãã®ã@sentry / utils / esm / supportsãã解決ã§ããŸãã
@pascaliske esm
ãã«ãã¯ãŸã å®éšæ®µéã«ããããŸã å
¬éãããŠããŸããã ãã¹ãŠããã¹ãããããå®è¡ããçµæãããã«æçš¿ããŸãã
@kamilogorekã¯ããããã£ãŠããŸãã ãããã®ãšã©ãŒããç¥ãããããã£ãã ãã§ãã ð
ããããšãã@ pascaliskeã«æè¬ããŸãïŒ ç§ãã¡ã¯ã§ããã ãæ©ãESMãµããŒããæäŸããããšããŸã:)
@pascaliskeæåyarn build
è©ŠããŠãã ãã
@cromefireããããããã¯ç§ãæãã®ã«åœ¹ç«ã¡ãŸããã npmããããã±ãŒãžãããŠã³ããŒãããã®ã§ãå©çšå¯èœãªãã«ãç°å¢ããããŸããã ð
ãœãŒã¹ã³ãŒããå°ãæ€çŽ¢ããŠã @sentry/browser
ãš@sentry/utils
ãæ¯èŒããŸããã ãããåé¡ã ãšæããŸãïŒ packages / utils / tsconfig.build.jsonïŒL5ãšpackages / browser / tsconfig.build.jsonïŒL5 ã éåžžã®ãã«ãåºåãesmãã«ãåºåãäžæžãããå¯èœæ§ã¯ãããŸããïŒ ð€
node_modulesãã©ã«ããŒå
ã®browser
ããã±ãŒãžã«ã¯ãéåžžãšesmã®äž¡æ¹ââããã®ãã«ãåºåãå«ãŸããŠããŸãã ãã ãã utils
ããã±ãŒãžã«ã¯ãã«ãŒããã©ã«ããŒã«éåžžã®ãã«ãåºåããå«ãŸããŠããŸããã
ãã§ã«ãªãªãŒã¹ãããŠããŸããïŒ
ãœãŒã¹ã³ãŒããå°ãæ€çŽ¢ããŠã@ centry / browserãš@sentry / utilsãæ¯èŒããŸããã ãããåé¡ã ãšæããŸãïŒpackages / utils / tsconfig.build.jsonïŒL5ãšpackages / browser / tsconfig.build.jsonïŒL5ã éåžžã®ãã«ãåºåãesmãã«ãåºåãäžæžãããå¯èœæ§ã¯ãããŸããïŒ ð€
ããããesmtsconfigã確èªããå¿ èŠããããŸã
ææ¥èŠãŠãããŸã
ããã¿ããªïŒ ãŸããSentryã®ãã³ãã«ãµã€ãºã®ããã€ãã調ã¹ãŠãããã«åºããããŸããïŒ https ïŒ//github.com/getsentry/sentry-javascript/blob/master/packages/minimal/package.json#L20
ããå°æ°ã®é¢æ°ïŒæ¡æ£ãšå²ãåœãŠïŒã«ãµã€ãºã®ãã£ã³ã¯ãè¿œå ããŠããããã§ãã ç§ã¯Typescriptã«ããŸã詳ãããããŸããããå®è¡æã«ãããè¡ãå¿ èŠããããŸããïŒ
ãŸãã @sentry/types
ã_runtime_äŸåé¢ä¿ã§ããå¿
èŠãããã devDependencies
ã«é
眮ãããŠããªãçç±ãããããŸãã...
typescriptã®ãã¹ãŠã®ãŠãŒã¶ãŒã®@evocateurããã¯å¿
èŠã§ãã Typescriptã¯ããããã¹ãŠæé©åããŸãã
ïŒãã ãã .d.ts
ãã¡ã€ã«ã«ã¯å¿
èŠãªå ŽåããããŸãïŒ
@IanMitchell esmãã«ãã«ã¯äœ¿çšãããŸããããéåžžã®ãã«ãã«ã¯äœ¿çšãããŸã
4.5.0ã®bundle.jsã«ã¯ãSeverityãhtmlElementAsStringãhtmlElementAsStringãuuid4ãparseUrlãªã©ã®éè€ã³ãŒããå€æ°å«ãŸããŠããŸãã ããã¯æå³ã§ããŸããïŒ
WebPack + Babel 7ã䜿çšããŠimport * as Sentry from '@sentry/browser';
ïŒãã¡ã€ã«å
ã®å¯äžã®è¡ãšããŠïŒãä»ããŠãã³ãã«ãå®è¡ããå Žåãåãããšãèµ·ããããã³ãã«ããããµã€ãºã¯326kbã«ãªããŸãã åç
§ïŒ sentry.bundle.js.txt
ä»ã®ãã³ãã«ã«ãåãæ§æã䜿çšããŠããŸããããã®åé¡ãçºçãããã³ãã«ã¯æ©åšã ãã§ãã
bundle.min.jsã®å éšã«éè€ããã³ãŒãã¯ãããŸãããããã¯ãããŒã«ã¢ããã«ããããªãŒã®æºãã®çµæã§ããå¯èœæ§ããããŸãã
ãããã£ãŠãäžæçãªè§£æ±ºçã¯import '@sentry/browser/build/bundle.min.js';
ã䜿çšããããšã§ã
4.5.0ã®bundle.jsã«ã¯ãSeverityãhtmlElementAsStringãhtmlElementAsStringãuuid4ãparseUrlãªã©ã®éè€ã³ãŒããå€æ°å«ãŸããŠããŸãã ããã¯æå³ã§ããŸããïŒ
ãããã esm
ãã«ããããçç±ã§ãïŒãŸãã¯å°ãªããšã1ã€ã®çç±ã§ãïŒã ãšã«ãããã³ãã©ãŒã䜿çšããŠããå Žåã¯ããã«ãåã®ãã³ãã«ã䜿çšãããããå¹ççã§ãã ïŒããã¯ããŒã¿çã§ãããçŸåšãå£ããŠããŸãïŒ
ãããããäžåºŠèŠãŠã¿ããšããããå°ããããããšã¯ã§ããªããšæããŸãã ãã£ãšå°ããã
ãœãŒã¹ãããããµããŒãããã¹ã¿ãã¯ãã¬ãŒã¹ã¯ããã®ã©ã€ãã©ãªã§æãè€éãªãã®ã§ããå¿ èŠããããŸããããã§ã¯ãªãããã«èŠããŸããïŒ ãããããªã³ãã®ã»ãšãã©ã¯ãnode.jsã¯ã©ã€ã¢ã³ããšå ±æããã³ã¢ãã¬ãŒã ã¯ãŒã¯ããã®ãã®ã®ããã§ãããããããªã³ãã¯å®éã«ã¯åé¡ã§ã¯ãªããšç¢ºä¿¡ããŠããŸãã
誀解ããªãã§ãã ãããããã¯çŸããã¢ãŒããã¯ãã£ã§ãããTypeScriptã®éåžžã«åªããæ©èœã§ãã
ããããã¯ã©ã€ã¢ã³ãåŽã§ã¯ãããã¯ããŸãæå³ããããŸããã å°ãããŠé«éã«ããŒãããå¿ èŠããããŸããç¹ã«ããã»ã©äœã¬ãã«ã®ãã®ã®å ŽåããœãŒã¹ã³ãŒããçŸãããã©ããã¯åé¡ã§ã¯ãããŸããã ç§ãç¥ãéãããã®å°è±¡çãªã®ã¯ãã¢ãŒããã¯ãã£ãå°æ¥çã«å€ãã®ãã€ããæ¶è²»ããŠããããšã§ãã
æ¯èŒã®ããã«ïŒ
ç§ã¯TrackJSã«åºããããŸãããããã¯ãã10KBã®ããã±ãŒãžã§åæ§ã®æ©èœïŒãœãŒã¹ãããã䜿çšããã¯ãã¹ãã©ãŠã¶ãŒã¹ã¿ãã¯ãã¬ãŒã¹ïŒãåããŠããŸãã
å ã®TraceKitã¯çŽ3KBmin + gzã§ãã
x-browserããªãã£ã«ã䜿çšããŠã8KB min + gzãŸãã¯ã10KBã§ãœãŒã¹ããããããïŒã¯ã©ã€ã¢ã³ãåŽïŒãå®è¡ã§ãããã®ã©ã€ãã©ãªãèŠã€ããŸããã
ãããè¶ ããŠãããã¯ãã©ãŠã¶æ å ±ã®æ°ããããåéããæåŸ ãããJSON圢åŒã§ã©ãããããããæçš¿ããããšã®åé¡ã§ã-ããã¯æ°KB min + gzãè¶ ããŠã¯ãªããŸããã ãããå¿ èŠã§ããïŒ
ããã¯ãã»ãšãã©ã®äººãå¿ èŠãšããŠãããã®ãããã¯ããã«å€ãã®ã¢ãŒããã¯ãã£ã§ããããã«æããŸãã ãã©ã°ã€ã³ã®ãµããŒããå¿ èŠãªå Žåã¯ãJSONæçš¿ã«æ å ±ããã©ã°ã€ã³ã§ããåçŽãªããã¯ãå¿ èŠãããããŸããããããã ãã§ãã
æè¿ã¯ã¡ã¬ãã€ãã®JSããããã€ããã®ãäžè¬çã§ãããã¢ãã€ã«ã§é«éã«èªã¿èŸŒãŸãããããžã§ã¯ãã確å®ã«åºè·ããããã«ãå³æ Œãªã³ã³ãã³ãããªã·ãŒãæ©èœããŠãããJSäºç®ã®åå以äžããšã©ãŒã«è²»ããããšãæ£åœåããããšã¯ã§ããŸãã-ãã®ã³ã°-ãããã10ïŒ ãããããªã®ã§ã15ã20KBã®ãããªãã®ã劥åœãšæãããŸãã
ç§ã¯ããªãã®è£œåã倧奜ãã§ããããã®ã¯ã©ã€ã¢ã³ããå±éããããšã¯ã§ããŸããð
ãã®ãããªå Žåã¯ãã¹ã¿ãã¯ãã¬ãŒã¹ãšãœãŒã¹ãããã®è§£æããµãŒããŒã«å§ä»»ããããšããå§ãããŸãããµãŒããŒã§ã¯ããµã€ãºã¯é¢ä¿ãããŸããã
ãã®ãããªå Žåã¯ãã¹ã¿ãã¯ãã¬ãŒã¹ãšãœãŒã¹ãããã®è§£æããµãŒããŒã«å§ä»»ããããšããå§ãããŸãããµãŒããŒã§ã¯ããµã€ãºã¯é¢ä¿ãããŸããã
@cromefireé¢çœãã¢ã€ãã¢ã ããããããšãã°TrackJSããµã€ãºãæããããã«è¡ãããšãªã®ã ãããã ïŒåœŒãã®ã¯ã©ã€ã¢ã³ãã¯ãããã©ã€ãšã¿ãªã§ã-çž®å°ããããœãŒã¹ããå©çšã§ããªãã®ã§ã圌ããäœãããŠããã®ããèšãã®ã¯é£ããã§ããç§ããããã€ã³ã¹ããŒã«ããŠãäœããããã¯ãŒã¯äžã移åããããèŠãããšãã§ãããšããŸããã...ïŒ
ãã©ãŠã¶ã§ãœãŒã¹ãããã解決ããããã®ããç°¡åãªããã±ãŒãžã¯æ¬¡ã®ãšããã§ããsource -map- resolveatã2KB min + gz ...ããã¯ããªãã£ã«ãªãã§ãããïŒãããæ©èœããå ŽåïŒããªãã£ã«ãå¿ èŠãšããªãææ°ã®ãã©ãŠã¶ã
ããã¯ããªãã£ã«ãªãã§ã
ããªãã£ã«ã¯esm
ãã«ãã«å«ããã¹ãã§ã¯ãªãã®ã§ããããæ©èœããå¯èœæ§ããããŸãããããã±ã³ãã§ã¯ããã«å°ãªããªããŸã
@cromefireESMãã«ãã¯4.5.1
ã§å©çšã§ããããã«ãªããŸããã æŠéãã¹ãæžã¿ã§ããããšã確èªãããã®ã§ããŸã ææžåãããŠããŸãããããããŸã§ã®ãšããéåžžã«åªããŠããŸãã ç§ã¯éåžžã®webpackãã«ããbabelloaderã§ãã§ãã¯ããŸããããããã¯é
åã®ããã«æ©èœããŸãã
ãããè¶ ããŠãããã¯ãã©ãŠã¶æ å ±ã®æ°ããããåéããæåŸ ãããJSON圢åŒã§ã©ãããããããæçš¿ããããšã®åé¡ã§ã-ããã¯æ°KB min + gzãè¶ ããŠã¯ãªããŸããã ãããå¿ èŠã§ããïŒ
@ mindplay-dkã¯ã©ã€ã¢ã³ãåŽã§ã¯ãã¹ã¿ãã¯ãã¬ãŒã¹ã®è§£æ±ºã¯å®è¡ãããŸããã ããã¯ãã¹ãŠãµãŒããŒäžã§è¡ããããããæåã«ãœãŒã¹ããããã¢ããããŒãããŠããããã®ãµããŒããååŸããå¿ èŠããããŸãã
ããããç§ãã¡ãããŠããããšã¯æ¬¡ã®ãšããã§ãã
ã»ãã®æ°äŸãæãããšã ããšã©ãŒããã£ããããããŒã¿ãè¿œå ããŠéä¿¡ãããã®ãšåããããç°¡åã«ã§ããããšãæ¬åœã«æãã§ããŸãã
ãã ããçŸå®ã®äžçã§ã¯ãæ°åã®å
¥åããããæ°åã®ãœãŒã¹ãšã©ãŒãçºçããå¯èœæ§ãããïŒãã¹ãŠç°ãªãããŒã¿ãæäŸããŸãïŒãåäœãç°ãªãæ°åã®ç°å¢ããããŸãã
ãããçŽ10ã15kBã«äžããæ¹æ³ã«ã€ããŠã¯ãä»åŸã確å®ã«åãçµãã§ãããŸããããã°ããæéãããããŸãã ç§ãã¡ã¯ä»äœ¿ãããšãã§ããéåžžã«å€ãã®ãªãœãŒã¹ïŒäºº/æéãèªãïŒããæã£ãŠããŸããã
æè¿ã¯ã¡ã¬ãã€ãã®JSããããã€ããã®ãäžè¬çã§ãããã¢ãã€ã«ã§é«éã«èªã¿èŸŒãŸãããããžã§ã¯ãã確å®ã«åºè·ããããã«ãå³æ Œãªã³ã³ãã³ãããªã·ãŒãæ©èœããŠãããJSäºç®ã®åå以äžããšã©ãŒã«è²»ããããšãæ£åœåããããšã¯ã§ããŸãã-ãã®ã³ã°-ãããã10ïŒ ãããããªã®ã§ã15ã20KBã®ãããªãã®ã劥åœãšæãããŸãã
ãã®åŸãããŒããŒã䜿çšã§ããŸãâ https://docs.sentry.io/platforms/javascript/loader/ :)
ãã®åŸãããŒããŒã䜿çšã§ããŸãâ https://docs.sentry.io/platforms/javascript/loader/ :)
ãããæ²ããããšã«ãwebpackã®è§£æ±ºçã¯ãããŸãã
ã»ãã®æ°äŸãæãããšã ããšã©ãŒããã£ããããããŒã¿ãè¿œå ããŠéä¿¡ãããã®ãšåããããç°¡åã«ã§ããããšãæ¬åœã«æãã§ããŸãã
å€å誰ããtc39ã§äœããææ¡ããã¹ãã§ãã ããã»ã¹ãã©ã®ããã«ãªã£ãŠããã®ãã確èªããå¿ èŠããããŸãããã¹ã¿ãã¯ãã¬ãŒã¹ã®èªã¿åããªã©ã®æšæºåãããAPIãææ¡ã§ãã人ããããããããŸããã
ãããæ²ããããšã«ãwebpackã®è§£æ±ºçã¯ãããŸãã
ã©ãããæå³ïŒ ããŒããŒãšå ±åã§ããããã±ãŒãžããããã€ã³ããŒãããŠãã³ãã«ã§ããŸããããšã©ãŒãŸãã¯captureExceptionåŒã³åºããçºçãããšãéåæã§ããŒããããSDKãšéä¿¡ããŸããïŒ
ã©ãããæå³ïŒ ããŒããŒãšå ±åã§ããããã±ãŒãžããããã€ã³ããŒãããŠãã³ãã«ã§ããŸããããšã©ãŒãŸãã¯captureExceptionåŒã³åºããçºçãããšãéåæã§ããŒããããSDKãšéä¿¡ããŸããïŒ
ã¯ããæ£ããèŠçŽãããšãããŒããŒã¯cdnçµç±ã§ã®ã¿å©çšã§ããŸã
@cromefireã¯ãããã¹ããããããšããŠäœ¿çšããããšãç®çãšããŠããããã§ãã ãã ããããã§ã³ãŒããèŠã€ããããšãã§ããŸãhttps://github.com/getsentry/sentry-javascript/blob/master/packages/browser/src/loader.js
esm
ã䜿çšãããšããããç¬èªã®ã³ãŒããã䜿çšã§ãããããæ°ããPRãéãå¿
èŠãããããã§ãã
loader
ãminimal
$ãšäžç·ã«äœ¿çšããæçµçãªãã³ãã«ã«æ°kBãå¹æçã«è¿œå ã§ãããœãªã¥ãŒã·ã§ã³ãç»å ŽããŸãã
1kbæªæºã§ããŒãããããŒããŒãäœæããã®ã¯é£ããããšã§ã¯ãªãã®ã§ãç°¡åãªããŒããŒãäœæããŠã¿ãŸãã
ããã§å€§ãã«åœ¹ç«ã€å¯èœæ§ãããããšã®1ã€ã¯ãäžéšã®æ©èœããªãã·ã§ã³ã§ãããã©ããã§ãã
ããšãã°ãæ¬åœã«çŽ æŽãããæäœéã®ãã®ã¯æ¬¡ã®ããã«ãªããŸãã
è¿œå ã®æ©èœã¯ãåãªãã¢ããªã³ã«ããããšãã§ããŸãã ææ°ã®ãã©ãŠã¶ã®ã¿ããµããŒãããŠãããããå€ããã©ãŠã¶ã®é¢šå€ãããªåäœããã¹ãŠåé¿ããå¿ èŠã¯ãããŸããã
ããã¯ãwebpackã³ãŒãåå²ã䜿çšãããšã©ãŒæã«ã®ã¿æ©åšã¯ã©ã€ã¢ã³ããããŒãããããšã§è§£æ±ºããŸããã
sentry.js
import * as Sentry from '@sentry/browser';
Sentry.init({
...
integrations: integrations => {
return integrations.filter(integration => integration.name !== 'GlobalHandlers');
},
});
export const logError = error => Sentry.captureException(error);
errors.js
const captureError = async error => {
const { logError } await import(/* webpackChunkName: "sentry" */ './sentry');
logError(error);
}
window.onerror = (message, url, line, column, error) => captureError(error);
window.onunhandledrejection = event => captureError(event.reason);
ãã¬ããã¯ã©ã ã®äœæãè¿œå ãã¿ã°ã®è¿œå ãªã©ãããã«ããã€ãã®ããšãè¡ããŸãããæ©åšã¯ã©ã€ã¢ã³ãã䜿çšããŠãã³ãã«ã倧ããããªãããšãå¯èœã§ãã
ããã¯ç§ãïŒ1846ã§å®è£ ãããã®ã§ã
ä»ã®äººã«åœ¹ç«ã€ãããããŸããïŒ
ç§ã¯æ¬¡ã®æ¹æ³ã§ESMãã«ããwebpackïŒ 4.29.5
ïŒã§äœ¿çšããŸããã
package.json
ã«ã¯module
宣èšããªããããæšæºãã«ãã§ã¯ãªãESMãã«ãã䜿çšããããã«webpackãšã€ãªã¢ã¹ãè¿œå ããŸãresolve: {
alias: {
// use sentry ESM build which is not declared in the @sentry/browser package.json
'@sentry/browser': path.resolve(
__dirname,
'node_modules/@sentry/browser/esm',
),
}
sentry/.+/esm
babel-loader
æ§æã«è¿œå ããŸãã{
test: /\.m?jsx?$/,
loader: 'babel-loader',
// compile sentry as the ESM build is new and ships modern features which break our supported browsers
exclude: /(node_modules\/(?!(@sentry\/[^/]+\/esm))|bower_components)\//,
}
ããŒãïŒ
lodash-es
ã«ã€ããŠãåæ§ã§ãïŒ@Limess
@sentry/browser/esm
ã«ãªãã€ã¬ã¯ãã§ããŸãïŒ
resolve: {
alias: {
// use sentry ESM build which is not declared in the @sentry/browser package.json
'@sentry/browser': '@sentry/browser/esm'
}
ãã ãããšã€ãªã¢ã¹ãè¿œå ããå¿
èŠã¯ãããŸããã @sentry/browser/esm
ãã€ã³ããŒãããã ãã§ãã
ããŒããŒã®å Žåã次ã®ããã«èšè¿°ããæ¹ãç°¡åã§ãã
{
test: /other_things/,
include: [/@sentry\/.+\/esm/],
exclude: /node_modules/,
// config
}
{
test: /@sentry\/.+\/esm/,
exclude: /node_modules/,
// config
}
ãŸããå¿ èŠã«å¿ããŠbabelæ§æãã«ã¹ã¿ãã€ãºããããšãå¿ããªãã§ãã ããïŒ babel docs ãããã§ãªãå Žåã¯ãesmããŒãžã§ã³ã䜿çšãã䟡å€ã¯ãããŸãã
æŽæ°ïŒãã³ãã«ãµã€ãºãå€§å¹ ã«åæžããSDKã®æ°ããã¡ãžã£ãŒããŒãžã§ã³ãéããªããªãªãŒã¹ããŸãã
26.1 kB
- httpsïŒ //bundlephobia.com/resultïŒp = @ sentry / browser @ 4.6.4
察ã
17.2 kB
- httpsïŒ //bundlephobia.com/resultïŒp = @ sentry / browser @ 5.0.0-rc.1
ãã«ãæžã¿ã®CDNããŒãžã§ã³ã§ããããè¯ãçµæãåŸãããŸãïŒbundlephobiaãã©ã®ããã«æž¬å®ãããã¯ããããŸããïŒ
ES6: 14.3535 kB
ES5: 15.6846 kB
ãšã«ããããã³ãã«ãµã€ãºãããã«çž®å°ããããã«ãŸã åãçµãã§ããããšããç¥ããããããšæããŸãããããã¯ãã§ã«æ£ããæ¹åãžã®å€§ããªäžæ©ã«ãªãã¯ãã§ãã
ã¢ããã°ã¬ãŒãã«é¢ãã泚æïŒ SDKã«ã¯å€ãã®å éšå€æŽããããããããã¯å€§ããªåé¡ã§ãã ããªãã®åŽã§å¿ èŠãªã³ãŒãå€æŽã¯ãªãã¯ãã§ãã çŸåšãsentry.ioã§æ°ããããŒãžã§ã³ããã¹ãããŠããã®åäœã確èªããŠããŸãã åç §ïŒ https ïŒ//github.com/getsentry/sentry/pull/12492
å
責äºé
ïŒç§ãã¡ãè¡ã£ãŠããããã«ããŸã æ¬çªç°å¢ã§5.0.0-rc.x
ã䜿çšããªãã§ãã ããð
@HazATã¯ãããçå£ã«åãæ¢ããŠãããŠããããšãïŒ ããã¯å€§ããªåé²ã§ã-ç§ã¯ãã§ã«ãããä»å±éããããšã«ã€ããŠããŸãå¿é ããŠããŸãã:-)
@kamilogorek奜å¥å¿ããã 3.x
ãã©ã³ãã®æåŸã®ããŒãžã§ã³ãæ¯èŒã«è¿œå ã§ããŸããïŒ
ç§ã¯ãã®åé¡ãç· ãããããŸããä»ã®ãšãããv4ããv5ãžã®ç§»è¡ã§å°å ¥ããåæžã¯æ£ããæ¹åãžã®åŸåã§ãããšèããŠããŸãã ä»åŸãããã«åæžãå³ããä»åŸãå¢ããããšãæèããŠãããŸãã
ç°¡åã«èšããšããã€ã¬ãŒãžã䜿çšããŠãããã³ãã©ãŒã«ãã£ãŠãã€ã¬ãŒãžãç°ãªãå¯èœæ§ããããããå®éã«ã¯ããã³ãã«ããµã€ãºãæ¯èŒããã ãã§ããåºè·ããCDNãã³ãã«çªå·ã¯æ¬¡ã®ãšããã§ãã
| ããã±ãŒãž| ããŒãžã§ã³| ãã€ãåäœã®ãµã€ãº| ãµã€ãºïŒKBïŒ| ãªã³ã¯|
| ----------------- | --------- | --------------- | ----- ------- | ------------------------------------------ ---------- |
| raven-js | 3.27.0 | 13741ãã€ã| ã13.4kB | https://cdn.ravenjs.com/3.27.0/raven.min.js |
| @ sentry / browser | 4.6.6 | 22607ãã€ã| ã22.1kB | https://browser.sentry-cdn.com/4.6.6/bundle.min.js |
| @ sentry / browser | 5.0.3 | 16059ãã€ã| ã15.7kB | https://browser.sentry-cdn.com/5.0.3/bundle.min.js |
v5ã§ã¯ãåºè·ãšesm
ãã«ããè¡ããŸããã€ãŸãããã³ãã©ãŒã䜿çšããŠããå Žåã¯ãæªäœ¿çšã®ã³ãŒããã¹ãããªãŒã·ã§ã€ã¯ã§ããã¯ãã§ãã
ãåŸ ã¡ããã ããããããšãããããŸãð
@HazAT @kamilogorekçŽ æŽãããïŒ
@Limessä»æ¥ã§ãããã䜿çšããããšã¯é©åã§ããïŒ @sentry/browser/esm
@sentry/browser
ïŒ
import * as Sentry from "@sentry/browser/esm";
ã®ããã«ã€ã³ããŒãããã webpack -p
ã«ãã³ãã«ãããŠããŸããããã³ãã«ãµã€ãºã«éãã¯ãããŸããã ãã©ã°ã€ã³ãããŒããŒã®ãªã裞ã®webpack.config.js
ããããŸãã
@ 0xbktå°ãªããšãä»ã¯ãããŒã«ã¢ããã䜿çšããŠã¢ããªããã³ãã«ããå Žåããã³ãã«ãµã€ãºã«éãã¯ãããŸããã
æãåèã«ãªãã³ã¡ã³ã
ããã©ãŒãã³ã¹ã®åé¡ã¯javascriptã®ããŠã³ããŒãã ãã§ãªãã解æãšå®è¡ãããçºçãããããçž®å°ããããµã€ãºãæ¯èŒããããšãå ¬æ£ã§ãããšç§ã¯äž»åŒµããŸãã ã92kbã¯éåžžã«å€§ãããããŒãšã³ãããã€ã¹ã§æ倧1ç§ã®è§£ææéãè¿œå ããå¯èœæ§ããããŸãïŒãã®1ã€ã®ã©ã€ãã©ãªã ãã§ãïŒïŒã
CDNãããã¹ã¯ãªããã®
< 1KB
ã®æ°ãã©ãããååŸãããããããŸããã 詳现ãæããŠããã ããŸããïŒhttps://browser.sentry-cdn.com/4.0.4/bundle.min.js
ãéããšã22KBã®gzipå§çž®ãµã€ãºã衚瀺ãããŸããã»ã³ããªãŒã®SDKã¯ãéçºè ãå«ããå€ãã®ã©ã€ãã©ãªã®1ã€ã«ãããªãããšã«æ³šæããŠãã ããã
PSïŒç§ã¯æ©åšã倧奜ãã§ããããã¯ç§ãã¡ã«ãšã£ãŠéåžžã«åœ¹ã«ç«ã¡ãŸããã Webããã©ãŒãã³ã¹ã¯ãç§ãæ ç±ã泚ãã§ãããã®ã§ãã ;ïŒ