ããã³ããšã³ããã³ãã«åæãæ·±ãæãäžããã°ããŒãã«ã§ã®ãŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãåäžãããããã®äŸåé¢ä¿ãµã€ãºã®æé©åæè¡ã«çŠç¹ãåœãŠãŸãã
ããã³ããšã³ããã³ãã«åæïŒã°ããŒãã«ããã©ãŒãã³ã¹ã®ããã®äŸåé¢ä¿ãµã€ãºã®æé©å
仿¥ã®ã°ããŒãã«ã«ã€ãªãã£ãäžçã§ã¯ããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãæãéèŠã§ãã倿§ãªå°ççå Žæããããã¯ãŒã¯ç°å¢ã®ãŠãŒã¶ãŒã¯ãé«éãªèªã¿èŸŒã¿æéãšã·ãŒã ã¬ã¹ãªäœéšãæåŸ ããŠããŸããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããéèŠãªèŠçŽ ã¯ãããã³ããšã³ããã³ãã«ã®ãµã€ãºã§ããããã¯ããã©ãŠã¶ãããŠã³ããŒãããŠå®è¡ããå¿ èŠãããJavaScriptãCSSããã®ä»ã®ã¢ã»ããã®éåã§ãã
ãã³ãã«ãµã€ãºã倧ãããšã次ã®ããã«ãªããŸãã
- èªã¿èŸŒã¿æéã®å¢å ïŒãŠã§ããµã€ããã€ã³ã¿ã©ã¯ãã£ãã«ãªããŸã§ã«é å»¶ãçºçããå¯èœæ§ããããŸãã
- é«ãé¢è±çïŒãµã€ãã®èªã¿èŸŒã¿ã«æéããããããããšã蚪åè ã¯é¢ããå¯èœæ§ãé«ããªããŸãã
- SEOã©ã³ãã³ã°ã®äœäžïŒæ€çŽ¢ãšã³ãžã³ã¯ãèªã¿èŸŒã¿ã®éããŠã§ããµã€ããåªå ããŸãã
- 垯åå¹ ã³ã¹ãã®å¢å ïŒç¹ã«ãã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãå¶éãããŠããããŸãã¯é«äŸ¡ãªå°åã§ã¯éèŠã§ãã
- ãã¬ãã£ããªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒãã©ã¹ãã¬ãŒã·ã§ã³ãäžæºã¯ããã©ã³ãã®è©å€ãæãªãå¯èœæ§ããããŸãã
ãã®å æ¬çãªã¬ã€ãã§ã¯ãããã³ããšã³ããã³ãã«åæã®éèŠæ§ãæ¢æ±ããäŸåé¢ä¿ã®ãµã€ãºãæé©åããããã®å®è·µçãªææ³ãæäŸãããŠã§ããµã€ããäžçäžã®ãŠãŒã¶ãŒã«é«éã§æ¥œããäœéšãæäŸã§ããããã«ããŸãã
ããã³ããšã³ããã³ãã«ã®çè§£
ããã³ããšã³ããã³ãã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®ã³ãŒããšãã®äŸåé¢ä¿ãåäžã®ãã¡ã€ã«ïŒãŸãã¯ãã¡ã€ã«ã®ã»ããïŒã«ãã³ãã«ããçµæã§ãããã®ããã»ã¹ã¯éåžžãWebpackãParcelãRollupãªã©ã®ã¢ãžã¥ãŒã«ãã³ãã©ãŒã«ãã£ãŠåŠçãããŸãããããã®ããŒã«ã¯ãã³ãŒããåæããäŸåé¢ä¿ã解決ããå¹ççã«ãã©ãŠã¶ã«é ä¿¡ããããã«ãã¹ãŠãããã±ãŒãžåããŸãã
ããã³ããšã³ããã³ãã«ã®äžè¬çãªã³ã³ããŒãã³ãã¯æ¬¡ã®ãšããã§ãã
- JavaScriptïŒãã¬ãŒã ã¯ãŒã¯ïŒReactãAngularãVue.jsïŒãã©ã€ãã©ãªïŒLodashãMoment.jsïŒãããã³ã«ã¹ã¿ã ã³ãŒããå«ããã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ã
- CSSïŒãŠã§ããµã€ãã®èŠèŠçãªå€èгãå®çŸ©ããã¹ã¿ã€ã«ã·ãŒãã
- ç»åïŒæé©ã«å§çž®ãããç»åã¢ã»ããã
- ãã©ã³ãïŒãã¶ã€ã³ã§äœ¿çšãããã«ã¹ã¿ã ãã©ã³ãã
- ãã®ä»ã®ã¢ã»ããïŒJSONãã¡ã€ã«ãSVGãããã³ãã®ä»ã®éçãªãœãŒã¹ã
ãã³ãã«ã®æ§æãçè§£ããããšã¯ããµã€ãºãæé©åããããã®æåã®ã¹ãããã§ããããã«ãããäžèŠãªäŸåé¢ä¿ãšãå šäœçãªãããããªã³ããåæžã§ããé åãç¹å®ã§ããŸãã
äŸåé¢ä¿ã®ãµã€ãºæé©åã®éèŠæ§
äŸåé¢ä¿ã¯ãã¢ããªã±ãŒã·ã§ã³ãäŸåããå€éšã©ã€ãã©ãªããã³ãã¬ãŒã ã¯ãŒã¯ã§ãããããã¯äŸ¡å€ã®ããæ©èœãæäŸããŸããããã³ãã«ãµã€ãºã«å€§ãã圱é¿ããå¯èœæ§ããããŸããäŸåé¢ä¿ã®ãµã€ãºãæé©åããããšã¯ãããã€ãã®çç±ã§éåžžã«éèŠã§ãã
- ããŠã³ããŒãæéã®ççž®ïŒç¹ã«ã€ã³ã¿ãŒãããæ¥ç¶ãé ãããŸãã¯ããŒã¿ãã©ã³ãå¶éãããŠãããŠãŒã¶ãŒã«ãšã£ãŠããã³ãã«ãå°ããã»ã©ããŠã³ããŒãæéãççž®ãããŸããã€ã³ãã®èŸ²æéšã§2Gæ¥ç¶ã§ãŠã§ããµã€ãã«ã¢ã¯ã»ã¹ããŠãããŠãŒã¶ãŒãæ³åããŠãã ããããã¹ãŠã®ãããã€ããéèŠã§ãã
- è§£æãšå®è¡æéã®æ¹åïŒãã©ãŠã¶ã¯ããŠã§ããµã€ããã¬ã³ããªã³ã°ããåã«JavaScriptã³ãŒããè§£æããŠå®è¡ããå¿ èŠããããŸãããã³ãã«ãå°ããã»ã©åŠçèœåãå°ãªããŠæžã¿ãèµ·åæéãççž®ãããŸãã
- ãã£ãã·ã¥å¹çã®åäžïŒãã³ãã«ãå°ããã»ã©ããã©ãŠã¶ã«ãã£ãŠãã£ãã·ã¥ãããå¯èœæ§ãé«ããªãããã®åŸã®ã¢ã¯ã»ã¹ã§ç¹°ãè¿ãããŠã³ããŒãããå¿ èŠããªããªããŸãã
- ã¢ãã€ã«ããã©ãŒãã³ã¹ã®åäžïŒã¢ãã€ã«ããã€ã¹ã¯ãåŠçèœåãšããããªãŒå¯¿åœãéãããŠããããšããããããŸãããã³ãã«ãå°ããã»ã©ãã¢ãã€ã«ããã€ã¹ã§ã®ãŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãšããããªãŒå¯¿åœãå€§å¹ ã«åäžãããããšãã§ããŸãã
- ãŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ãã®åäžïŒé«éã§å¿çæ§ã®é«ããŠã§ããµã€ãã¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžããããŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ããé«ããé¢è±çãäœäžãããŸãã
äŸåé¢ä¿ãæ éã«ç®¡çãããã®ãµã€ãºãæé©åããããšã§ããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããäžçäžã®ãŠãŒã¶ãŒã«ããè¯ãäœéšãæäŸã§ããŸãã
ããã³ããšã³ããã³ãã«åæããŒã«
ããã³ããšã³ããã³ãã«ãåæããæé©åã®é åãç¹å®ããããã«ãããã€ãã®ããŒã«ãå©çšã§ããŸãã
- Webpack Bundle AnalyzerïŒãã³ãã«ã®èŠèŠçãªè¡šçŸãæäŸããåã¢ãžã¥ãŒã«ã®ãµã€ãºãšæ§æã瀺ããäžè¬çãªWebpackãã©ã°ã€ã³ã
- Parcel Bundle VisualizerïŒWebpack Bundle Analyzerãšåæ§ã§ãããParcelå°çšã«èšèšãããŠããŸãã
- Rollup VisualizerïŒRollupã®ããžã¥ã¢ã©ã€ã¶ãŒãã©ã°ã€ã³ã
- Source Map ExplorerïŒãœãŒã¹ãããã䜿çšããŠJavaScriptãã³ãã«ãåæããåã ã®é¢æ°ãšã¢ãžã¥ãŒã«ã®ãµã€ãºãç¹å®ããã¹ã¿ã³ãã¢ãã³ããŒã«ã
- BundlePhobiaïŒåã ã®npmããã±ãŒãžãšãã®äŸåé¢ä¿ã®ãµã€ãºãã€ã³ã¹ããŒã«åã«åæã§ãããªã³ã©ã€ã³ããŒã«ã
ãããã®ããŒã«ã¯ããã³ãã«ã®æ§é ã«é¢ãã貎éãªæŽå¯ãæäŸãã倧ããªäŸåé¢ä¿ãéè€ããã³ãŒããããã³æé©åã®ãã®ä»ã®é åãç¹å®ããã®ã«åœ¹ç«ã¡ãŸããããšãã°ãWebpack Bundle Analyzerã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã§ã©ã®ç¹å®ã®ã©ã€ãã©ãªãæãå€ãã®ã¹ããŒã¹ãå ããŠããããçè§£ã§ããŸãããã®çè§£ã¯ãã©ã®äŸåé¢ä¿ãæé©åãŸãã¯åé€ããããæ±ºå®ããéã«éåžžã«è²Žéã§ãã
äŸåé¢ä¿ã®ãµã€ãºãæé©åããããã®ãã¯ããã¯
ãã³ãã«ãåæããããäŸåé¢ä¿ã®ãµã€ãºãæé©åããããã®ãã¯ããã¯ãå®è£ ã§ããŸããæ¬¡ã«ãããã€ãã®å¹æçãªæŠç¥ã瀺ããŸãã
1. ã³ãŒãåå²
ã³ãŒãåå²ãšã¯ãã¢ããªã±ãŒã·ã§ã³ããªã³ããã³ãã§ããŒãã§ããå°ããªãã£ã³ã¯ã«åå²ããããšã§ããããã«ãããç¹ã«å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã®å Žåãåæãã³ãã«ãµã€ãºãçž®å°ãããèªã¿èŸŒã¿æéãççž®ãããŸãã
äžè¬çãªã³ãŒãåå²ãã¯ããã¯ã«ã¯ã次ã®ãã®ããããŸãã
- ã«ãŒãããŒã¹ã®åå²ïŒç°ãªãã«ãŒããŸãã¯ããŒãžã«åºã¥ããŠã¢ããªã±ãŒã·ã§ã³ãåå²ããŸãã
- ã³ã³ããŒãã³ãããŒã¹ã®åå²ïŒåã ã®ã³ã³ããŒãã³ãã«åºã¥ããŠã¢ããªã±ãŒã·ã§ã³ãåå²ããŸãã
- åçã€ã³ããŒãïŒåçã€ã³ããŒãã䜿çšããŠãªã³ããã³ãã§ã¢ãžã¥ãŒã«ãããŒãããŸãã
ããšãã°ãå€§èŠæš¡ãªeã³ããŒã¹ãŠã§ããµã€ããããå ŽåãããŒã ããŒãžã補åãªã¹ããããã³ãã§ãã¯ã¢ãŠãããã»ã¹ã®ããã«ã³ãŒããåå¥ã®ãã³ãã«ã«åå²ã§ããŸããããã«ããããŠãŒã¶ãŒã¯èšªåããŠããç¹å®ã®ããŒãžã«å¿ èŠãªã³ãŒãã®ã¿ãããŠã³ããŒãã§ããŸãã
2. Tree Shaking
Tree shakingã¯ãäŸåé¢ä¿ããæªäœ¿çšã®ã³ãŒããåé€ãããã¯ããã¯ã§ããWebpackãRollupãªã©ã®ææ°ã®ã¢ãžã¥ãŒã«ãã³ãã©ãŒã¯ããããã³ãŒããèªåçã«èå¥ããŠåé€ãããã³ãã«å šäœã®ãµã€ãºãçž®å°ã§ããŸãã
Tree shakingãæå¹ã«ããã«ã¯ãäŸåé¢ä¿ãéçã«åæå¯èœãªESã¢ãžã¥ãŒã«ïŒECMAScriptã¢ãžã¥ãŒã«ïŒã§èšè¿°ãããŠããããšã確èªããŠãã ãããCommonJSã¢ãžã¥ãŒã«ïŒå€ãNode.jsãããžã§ã¯ãã§äœ¿çšïŒã¯ã广çã«Tree shakingããã®ãããå°é£ã§ãã
ããšãã°ãLodashã®ãããªãŠãŒãã£ãªãã£ã©ã€ãã©ãªã䜿çšããŠããå Žåã¯ãã©ã€ãã©ãªå šäœãã€ã³ããŒããã代ããã«ãå¿ èŠãªç¹å®ã®é¢æ°ã®ã¿ãã€ã³ããŒãã§ããŸãã`import _ from 'lodash'`ã®ä»£ããã«ã`import get from 'lodash/get'`ããã³`import map from 'lodash/map'`ã䜿çšããŸããããã«ããããã³ãã©ãŒã¯æªäœ¿çšã®Lodash颿°ãTree shakingã§ããŸãã
3. æå°å
æå°åã¯ã空çœãã³ã¡ã³ããã»ãã³ãã³ãªã©ãäžèŠãªæåãã³ãŒãããåé€ããŸããããã«ãããã³ãŒãã®æ©èœãæãªãããšãªãããã¡ã€ã«ãµã€ãºãçž®å°ãããŸãã
ã»ãšãã©ã®ã¢ãžã¥ãŒã«ãã³ãã©ãŒã«ã¯ãçµã¿èŸŒã¿ã®æå°åããŒã«ãå«ãŸããŠããããTerserãUglifyJSã®ãããªãã©ã°ã€ã³ããµããŒãããŠããŸãã
4. å§çž®
å§çž®ã¯ãGzipãBrotliã®ãããªã¢ã«ãŽãªãºã ã䜿çšããŠãã¡ã€ã«ãå§çž®ãããã©ãŠã¶ã«éä¿¡ããåã«ãã³ãã«ã®ãµã€ãºãçž®å°ããŸãã
ã»ãšãã©ã®ãŠã§ããµãŒããŒãšCDNã¯å§çž®ããµããŒãããŠããŸãããµãŒããŒã§å§çž®ãæå¹ã«ãªã£ãŠããããšã確èªããŠããã³ãã«ã®ããŠã³ããŒããµã€ãºãå€§å¹ ã«çž®å°ããŠãã ããã
5. äŸåé¢ä¿ã®æé©å
äŸåé¢ä¿ãæ éã«è©äŸ¡ããæ¬¡ã®ç¹ãæ€èšããŠãã ããã
- æªäœ¿çšã®äŸåé¢ä¿ã®åé€ïŒã¢ããªã±ãŒã·ã§ã³ã§äžèŠã«ãªã£ãäŸåé¢ä¿ãç¹å®ããŠåé€ããŸãã
- 倧ããªäŸåé¢ä¿ãå°ããªä»£æ¿ã«çœ®ãæããïŒåæ§ã®æ©èœãæäŸãã倧ããªäŸåé¢ä¿ã®å°ããªä»£æ¿ãæ€èšããŸããããšãã°ãæ¥ä»æäœã«ã¯`Moment.js`ã®ä»£ããã«`date-fns`ã®äœ¿çšãæ€èšããŠãã ããã`date-fns`ã¯äžè¬çã«å°ãããããã¢ãžã¥ãŒã«åãããŠããŸãã
- ç»åã¢ã»ããã®æé©åïŒå質ãç ç²ã«ããããšãªãç»åãå§çž®ããŸããImageOptimãTinyPNGã®ãããªããŒã«ã䜿çšããŠç»åãæé©åããŸããJPEGãŸãã¯PNGãããåªããå§çž®ãæäŸããWebPã®ãããªææ°ã®ç»å圢åŒã®äœ¿çšãæ€èšããŠãã ããã
- ç»åããã®ä»ã®ã¢ã»ããã®é å»¶ããŒãïŒç»åããã®ä»ã®ã¢ã»ããã¯ãå¿ èŠãªå Žåãããšãã°ãã¥ãŒããŒãã«è¡šç€ºãããŠããå Žåã«ã®ã¿ããŒãããŸãã
- ã³ã³ãã³ãé ä¿¡ãããã¯ãŒã¯ïŒCDNïŒã®äœ¿çšïŒäžçäžã®è€æ°ã®ãµãŒããŒã«åæ£ããŠéçã¢ã»ãããé ä¿¡ããŸããããã«ããããŠãŒã¶ãŒã¯å°ççã«è¿ããµãŒããŒããã¢ã»ãããããŠã³ããŒãã§ãããããé å»¶ãççž®ãããèªã¿èŸŒã¿æéãççž®ãããŸããCloudflareãšAWS CloudFrontã¯ãäžè¬çãªCDNãªãã·ã§ã³ã§ãã
6. ããŒãžã§ã³ç®¡çãšäŸåé¢ä¿ã®æŽæ°
äŸåé¢ä¿ãææ°ã®ç¶æ ã«ä¿ã€ããšã¯ãã»ãã¥ãªãã£äžã®çç±ã ãã§ãªããããã©ãŒãã³ã¹ã®æé©åã«ãéèŠã§ããã©ã€ãã©ãªã®æ°ããããŒãžã§ã³ã«ã¯ããã³ãã«ãµã€ãºãçž®å°ã§ããããã©ãŒãã³ã¹ã®æ¹åãšãã°ä¿®æ£ãå«ãŸããŠããããšããããããŸãã
`npm audit`ãŸãã¯`yarn audit`ã®ãããªããŒã«ã䜿çšããŠãäŸåé¢ä¿ã®ã»ãã¥ãªãã£è匱æ§ãç¹å®ããŠä¿®æ£ããŸããäŸåé¢ä¿ãææ°ã®å®å®ããŒãžã§ã³ã«å®æçã«æŽæ°ããŸãããæŽæ°åŸã«ã¢ããªã±ãŒã·ã§ã³ã培åºçã«ãã¹ãããŠãäºææ§ã®åé¡ããªãããšã確èªããŠãã ããã
ã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ïŒsemverïŒã䜿çšããŠãäŸåé¢ä¿ã管çããããšãæ€èšããŠãã ãããSemverã¯ãäŸåé¢ä¿ã®ããŒãžã§ã³äºææ§ãæç¢ºãã€äžè²«ããæ¹æ³ã§æå®ããç Žå£çãªå€æŽãå°å ¥ããããšãªããæ°ããããŒãžã§ã³ã«ç°¡åã«ã¢ããã°ã¬ãŒãã§ããããã«ããŸãã
7. ãµãŒãããŒãã£ã¹ã¯ãªããã®ç£æ»
åæãã©ãã«ãŒãåºåãããã¯ãŒã¯ããœãŒã·ã£ã«ã¡ãã£ã¢ãŠã£ãžã§ãããªã©ã®ãµãŒãããŒãã£ã¹ã¯ãªããã¯ããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸãããããã®ã¹ã¯ãªããã宿çã«ç£æ»ããŠããŠã§ããµã€ãã®é床ãäœäžããŠããªãããšã確èªããŠãã ããã
以äžãæ€èšããŠãã ããã
- ãµãŒãããŒãã£ã¹ã¯ãªãããéåæã§ããŒãããïŒéåæããŒãã«ããããããã®ã¹ã¯ãªããããŠã§ããµã€ãã®ã¬ã³ããªã³ã°ããããã¯ããã®ãé²ããŸãã
- éèŠã§ãªãã¹ã¯ãªããã®ããŒããé ãããïŒãŠã§ããµã€ãã®åæã¬ã³ããªã³ã°ã«äžå¯æ¬ ã§ã¯ãªãã¹ã¯ãªããã®ããŒãããããŒãžã®ããŒãåŸã«é ãããŸãã
- ãµãŒãããŒãã£ã¹ã¯ãªããã®æ°ãæå°éã«æããïŒéèŠãªäŸ¡å€ãæäŸããªãäžèŠãªãµãŒãããŒãã£ã¹ã¯ãªãããåé€ããŸãã
ããšãã°ãGoogle Analyticsã䜿çšããå Žåã¯ã`<script>`ã¿ã°ã®`async`屿§ã䜿çšããŠéåæã§ããŒããããŠããããšã確èªããŠãã ããã
å®è·µçãªäŸãšã±ãŒã¹ã¹ã¿ãã£
ãããã®ãã¯ããã¯ãã©ã®ããã«é©çšã§ãããã®å®è·µçãªäŸãèŠãŠã¿ãŸãããã
- ã·ããªãª1ïŒEã³ããŒã¹ãµã€ãäžã®å€§ããªç»åã¢ã»ãã
補åãã°ããŒãã«ã«è²©å£²ããeã³ããŒã¹ãŠã§ããµã€ãã¯ã倧ããªç»åã¢ã»ãããåå ã§èªã¿èŸŒã¿æéãé ããªã£ãŠããŸããåæã«ããã補åç»åããŠã§ãã§ã®äœ¿çšã«æé©åãããŠããªãããšãæããã«ãªããŸããã解決çïŒTinyPNGã®ãããªããŒã«ã䜿çšããŠç»åå§çž®ãå®è£ ããç»åãWebP圢åŒã«å€æããæãããã¿ç·ã®äžã®ç»åã®é å»¶ããŒããå®è£ ããŸããããã«ãäžçäžã®ãŠãŒã¶ãŒã«å°ççã«è¿ããµãŒããŒããç»åãæäŸããããã«ãCDNãå®è£ ãããŠããŸããçµæïŒç»åã®ããŠã³ããŒãæéãå€§å¹ ã«ççž®ãããããŒãžèªã¿èŸŒã¿æéãççž®ãããã°ããŒãã«ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžããŸãã
- ã·ããªãª2ïŒæªäœ¿çšã®Lodash颿°
Reactã§æ§ç¯ããããŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯Lodashã©ã€ãã©ãªãåºç¯å²ã«äœ¿çšããŠããŸãããå®éã«äœ¿çšãããŠããã®ã¯ãã®é¢æ°ã®ããäžéšã§ããWebpack Bundle Analyzerã䜿çšããåæã«ãããLodashã©ã€ãã©ãªå šäœããã³ãã«ã«å«ãŸããŠãããäžèŠãªéã¿ã远å ãããŠããããšãæããã«ãªããŸããã解決çïŒå¿ èŠãªç¹å®ã®Lodash颿°ã®ã¿ãã€ã³ããŒãããããã«ã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããŸãïŒäŸïŒ`import map from 'lodash/map';`ïŒãWebpackã§Tree shakingãæå¹ã«ããŸããçµæïŒæªäœ¿çšã®Lodash颿°ãåé€ããããšã§ãã³ãã«ãµã€ãºãå€§å¹ ã«çž®å°ãããèªã¿èŸŒã¿æéãççž®ãããŸãã
- ã·ããªãª3ïŒè匱æ§ã®ããå€ãäŸåé¢ä¿
ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã«ã¯ãæ¢ç¥ã®ã»ãã¥ãªãã£è匱æ§ãæã€ããã€ãã®å€ãäŸåé¢ä¿ããããŸãã`npm audit`ãå®è¡ãããšããããã®è匱æ§ãæããã«ãªããŸãã解決çïŒå€ãäŸåé¢ä¿ãææ°ã®å®å®ããŒãžã§ã³ã«æŽæ°ããäºææ§ã確ä¿ããããã«æŽæ°åŸã«åŸ¹åºçã«ãã¹ãããŸããçµæïŒã»ãã¥ãªãã£è匱æ§ãä¿®æ£ãããã¢ããªã±ãŒã·ã§ã³ã¯æ°ããããŒãžã§ã³ã®äŸåé¢ä¿ã®ããã©ãŒãã³ã¹æ¹åãšãã°ä¿®æ£ã®æ©æµãåããå¯èœæ§ããããŸãã
äŸåé¢ä¿ã®æé©åã«é¢ããã°ããŒãã«ãªèæ ®äºé
äŸåé¢ä¿ã®ãµã€ãºãæé©åããå Žåã¯ããŠãŒã¶ãŒã®ã°ããŒãã«ãªã³ã³ããã¹ããèæ ®ããããšãéèŠã§ããçæãã¹ãéèŠãªèŠçŽ ãæ¬¡ã«ç€ºããŸãã
- ãããã¯ãŒã¯ã®ç¶æ ïŒå°åãç°ãªããšããããã¯ãŒã¯é床ãšä¿¡é Œæ§ã®é«ãã€ã³ã¿ãŒãããæ¥ç¶ãžã®ã¢ã¯ã»ã¹ãç°ãªãå ŽåããããŸãããã¹ãŠã®äººã«åªãããšã¯ã¹ããªãšã³ã¹ãä¿èšŒããããã«ãæ¥ç¶é床ã®é ããŠãŒã¶ãŒåãã«ãã³ãã«ãæé©åããŸããããšãã°ãäžéšã®ã¢ããªã«è«žåœã§ã¯ãã¢ãã€ã«ããŒã¿ã®äŸ¡æ Œãæ¯èŒçé«ãããããã³ãã«ãµã€ãºãå°ããã»ã©ãŠãŒã¶ãŒã®ã¢ã¯ã»ã¹æ§ãå€§å¹ ã«åäžããŸãã
- ããã€ã¹ã®æ©èœïŒãŠãŒã¶ãŒã¯ãåŠçèœåãå¶éãããŠããããŒãšã³ãã®æºåž¯é»è©±ãå«ããããŸããŸãªããã€ã¹ã§ãŠã§ããµã€ãã«ã¢ã¯ã»ã¹ããå ŽåããããŸããã¹ã ãŒãºã§å¿çæ§ã®é«ããšã¯ã¹ããªãšã³ã¹ãä¿èšŒããããã«ãããŒãšã³ãããã€ã¹åãã«ãã³ãã«ãæé©åããŸãã
- ã¢ã¯ã»ã·ããªãã£ïŒãŠã§ããµã€ããé害ã®ãããŠãŒã¶ãŒã«ã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŸããããã«ã¯ãç»åã®ä»£æ¿ããã¹ãã®æäŸãã»ãã³ãã£ãã¯HTMLã®äœ¿çšãããã³ãŠã§ããµã€ããããŒããŒãã§ã¢ã¯ã»ã¹å¯èœã§ããããšãä¿èšŒããããšãå«ãŸããŸãã
- ããŒã«ãªãŒãŒã·ã§ã³ïŒããŒã«ãªãŒãŒã·ã§ã³ããã³ãã«ãµã€ãºã«äžãã圱é¿ãèæ ®ããŸããèšèªãç°ãªããšããã³ãã«å šäœã®ãµã€ãºã倧ããããå¯èœæ§ã®ãããç°ãªããã©ã³ãããã®ä»ã®ã¢ã»ãããå¿ èŠã«ãªãå ŽåããããŸããããã©ãŒãã³ã¹ãžã®åœ±é¿ãæå°éã«æããããã«ãããŒã«ãªãŒãŒã·ã§ã³æŠç¥ãæé©åããŸããããšãã°ããŠãŒã¶ãŒã®ãã±ãŒã«ã«åºã¥ããŠèšèªåºæã®ã¢ã»ãããåçã«ããŒãããããšãæ€èšããŠãã ããã
- ãã£ãã·ã¥æŠç¥ïŒãªã¯ãšã¹ãæ°ãæžãããèªã¿èŸŒã¿æéãççž®ããããã«ã广çãªãã£ãã·ã¥æŠç¥ãå®è£ ããŸãããã©ãŠã¶ãã£ãã·ã¥ãCDNãã£ãã·ã¥ãããã³ãµãŒãã¹ã¯ãŒã«ãŒã䜿çšããŠãã¢ã»ãããšããŒã¿ããã£ãã·ã¥ããŸãããã£ãã«å€æŽãããªãéçã¢ã»ããã«ã¯ãé·ããã£ãã·ã¥æå¹æéã®äœ¿çšãæ€èšããŠãã ããã
çµè«
ããã³ããšã³ããã³ãã«åæãšäŸåé¢ä¿ã®ãµã€ãºæé©åã¯ãäžçäžã§é«éã§æ¥œãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããã«äžå¯æ¬ ã§ãããã³ãã«ã®æ§æãçè§£ããé©åãªããŒã«ã䜿çšãã广çãªæé©åãã¯ããã¯ãå®è£ ããããšã§ããã³ãã«ã®ãµã€ãºãå€§å¹ ã«çž®å°ãããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã®ããŒãºãåªå ãããããã¯ãŒã¯ã®ç¶æ ãããã€ã¹ã®æ©èœãã¢ã¯ã»ã·ããªãã£ãªã©ããšã¯ã¹ããªãšã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ã®ããèŠå ãèæ ®ããããšãå¿ããªãã§ãã ãããæé©åãžã®å æ¬çãªã¢ãããŒãããšãããšã§ããŠã§ããµã€ããé«éã§å¿çæ§ãé«ããäžçäžã®ãŠãŒã¶ãŒã«ã¢ã¯ã»ã¹å¯èœã§ããããšãä¿èšŒã§ããŸãã
æ¹åã®äœå°ãç¹å®ãããŠã§ããµã€ããæéã®çµéãšãšãã«æé©åãããç¶æ ãç¶æã§ããããã«ããã³ãã«ãµã€ãºãšããã©ãŒãã³ã¹ã¡ããªãã¯ãç¶ç¶çã«ç£èŠããŸããGoogle PageSpeed InsightsãWebPageTestã®ãããªããŒã«ã䜿çšããŠããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãç£èŠããæœåšçãªããã«ããã¯ãç¹å®ããŸãã
ããã³ããšã³ããã³ãã«åæãšäŸåé¢ä¿ã®ãµã€ãºæé©åã«æè³ããããšã§ãåªãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸãããŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ããåäžãããããžãã¹ææãä¿é²ãããŠã§ããµã€ããäœæã§ããŸãã