Next.jsãã«ããã£ãã·ã¥ã®åãæå€§éã«æŽ»çšããè¿ éãªãããã€ãšéçºè ã®çç£æ§åäžãå®çŸãããã©ãŒãã³ã¹ãæé©åããã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«æŠç¥ãæ¢ããŸãã
Next.jsãã«ããã£ãã·ã¥ïŒã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«ããã¹ã¿ãŒããŠè¶ é«éãããã€ãå®çŸ
仿¥ã®ããŒã¹ã®éããŠã§ãéçºã®äžçã§ã¯ãã¹ããŒããšå¹çãæãéèŠã§ãã匷åãªReactãã¬ãŒã ã¯ãŒã¯ã§ããNext.jsã¯ãéçºãšãããã€ã®ããã»ã¹ãå éãããããã®æ§ã ãªæé©åæè¡ãæäŸããŠããŸãããã®äžã§æã圱é¿åã®ããæ©èœã®äžã€ããã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«æŠç¥ãšçµã¿åããããã«ããã£ãã·ã¥ã§ãããã®ããã°èšäºã§ã¯ãNext.jsã®ãã«ããã£ãã·ã¥ãæ·±ãæãäžãããã®ä»çµã¿ãå©ç¹ããããŠå®è·µçãªå¿çšãæ¢æ±ããäžçäžã®éçºè ããããŸã§ä»¥äžã«è¿ éã«ãã«ããšãããã€ãè¡ããããã«ããŸãã
Next.jsãã«ããã£ãã·ã¥ãçè§£ãã
Next.jsãã«ããã£ãã·ã¥ã¯ã以åã®ãã«ãã¹ãããã®çµæãä¿åããããšã§ããã«ãæéãå€§å¹ ã«ççž®ããããã«èšèšãããã¡ã«ããºã ã§ããæ¯åã®ãã«ãã§ã¢ããªã±ãŒã·ã§ã³ã³ãŒãå šäœããŒãããååŠçãã代ããã«ãNext.jsã¯ä»¥åã«ã³ã³ãã€ã«ãããã¢ã»ããïŒJavaScriptãã³ãã«ãCSSãã¡ã€ã«ãç»åãªã©ïŒãã€ã³ããªãžã§ã³ãã«åå©çšããŸãããã®ãã£ãã·ã¥æŠç¥ã¯ãç¹ã«å€§èŠæš¡ã§è€éãªãããžã§ã¯ãã«ãããŠãå€§å¹ ãªæéç¯çŽã«ã€ãªãããŸãããã£ãã·ã¥ã¯éåžž`.next`ãã£ã¬ã¯ããªã«ä¿åãããæç€ºçã«ã¯ãªã¢ãŸãã¯ç¡å¹åãããªãéãããã«ãéã§æç¶ããŸãã
ãã«ããã£ãã·ã¥ã®ä»çµã¿
Next.jsã®ãã«ãããã»ã¹ã¯ãããã€ãã®ã¹ããŒãžã«åãããŠããŸãããã«ããã£ãã·ã¥ã¯ããããã®åã¹ããŒãžã®çµæããã£ãã·ã¥ããããšã§æ©èœããŸãã以äžã«ç°¡åãªæŠèŠã瀺ããŸãïŒ
- ã³ã³ãã€ã«ïŒ JavaScriptããã³TypeScriptã³ãŒãããã©ãŠã¶äºæã®åœ¢åŒã«ãã©ã³ã¹ãã€ã«ããŸãã
- ãã³ãã«ïŒ ã³ã³ãã€ã«ãããã³ãŒããšäŸåé¢ä¿ãæé©åããããã³ãã«ã«ããã±ãŒãžåããŸãã
- ç»åæé©åïŒ å èµã®ç»åã³ã³ããŒãã³ãã䜿çšããŠãæ§ã ãªç»é¢ãµã€ãºããã©ãŒãããã«åãããŠç»åãæé©åããŸãã
- éçãµã€ãçæïŒSSGïŒïŒ ãã«ãæã«éçããŒãžãäºåã«ã¬ã³ããªã³ã°ããŸãã
- ãµãŒããŒãµã€ãã¬ã³ããªã³ã°ïŒSSRïŒïŒ åæãªã¯ãšã¹ãã«å¯ŸããŠãµãŒããŒäžã§ããŒãžãã¬ã³ããªã³ã°ããŸãã
- APIã«ãŒãã®ã³ã³ãã€ã«ïŒ APIã«ãŒãçšã®ãµãŒããŒã¬ã¹é¢æ°ãã³ã³ãã€ã«ããŸãã
Next.jsã¯ã³ãŒãããŒã¹ãžã®å€æŽãã€ã³ããªãžã§ã³ãã«è¿œè·¡ããã¢ããªã±ãŒã·ã§ã³ã®ã©ã®éšåãåãã«ãããå¿ èŠããããã倿ããŸãããã¡ã€ã«ãæåŸã®ãã«ããã倿ŽãããŠããªãå Žåããã£ãã·ã¥ãããããŒãžã§ã³ãåå©çšãããŸãããã®ã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«ã®ã¢ãããŒããããã«ããã£ãã·ã¥ã®å¹çæ§ã®æ žãšãªã£ãŠããŸãã
ãã«ããã£ãã·ã¥æŽ»çšã®ã¡ãªãã
Next.jsãã«ããã£ãã·ã¥ãå©çšããããšã«ã¯æ°å€ãã®ã¡ãªããããããããå¹ççã§çç£çãªéçºã¯ãŒã¯ãããŒã«è²¢ç®ããŸãïŒ
ãã«ãæéã®ççž®
æãçŽæ¥çãªã¡ãªããã¯ããã«ãæéã®å€§å¹ ãªççž®ã§ããããã«ããããããã€ãé«éåãããéçºäžã®ãã£ãŒãããã¯ã«ãŒããççž®ãããéçºè ã®åŸ ã¡æéãæžå°ããŸããç¯çŽãããæéã¯ãç¹ã«å€§èŠæš¡ãªã³ãŒãããŒã¹ãè€éãªäŸåé¢ä¿ããŸãã¯å€§éã®ç»åã¢ã»ãããæã€ãããžã§ã¯ãã«ãšã£ãŠéèŠã§ãã
éçºè ã®çç£æ§åäž
ãã«ãæéã®ççž®ã¯ãéçºè ã®çç£æ§åäžã«çŽæ¥ã€ãªãããŸããéçºè ã¯ã³ãŒãã®å埩ã倿Žã®ãã¹ããæŽæ°ã®ãããã€ãã¯ããã«è¿ éã«è¡ãããšãã§ããŸããããã«ãããããè¿ éãªå®éšãè¿ éãªãã°ä¿®æ£ããããŠããã¢ãžã£ã€ã«ãªéçºããã»ã¹ãå¯èœã«ãªããŸããããã¯ã仿¥ã®åžå Žã§ç«¶äºåªäœãç®æãäžçäžã®ããŒã ã«ãšã£ãŠäžå¯æ¬ ã§ãã
CI/CDããã©ãŒãã³ã¹ã®åäž
ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ããã³ç¶ç¶çãããã€ã¡ã³ãïŒCI/CDïŒãã€ãã©ã€ã³ã¯ããã«ããã£ãã·ã¥ãã倧ããªæ©æµãåããŸãããã«ããé«éåãããããšã§ãããã€ãé«éåãããããå¿çæ§ãé«ãå¹ççãªCI/CDãã€ãã©ã€ã³ãå®çŸããŸããããã¯ãèªåãããã€ãèªåãã¹ãã«ãšã£ãŠç¹ã«äŸ¡å€ããããæ°æ©èœããã°ä¿®æ£ãäžçäžã®ãŠãŒã¶ãŒã«è¿ éã«æäŸããããšãå éãããŸãã
ã³ã¹ãåæž
ã¯ã©ãŠããã©ãããã©ãŒã ã«ãããã€ããããããžã§ã¯ãã§ã¯ããã«ãæéã®ççž®ãã³ã¹ãåæžã«ã€ãªããããšããããŸãããã«ãæéãçãã»ã©ããã«ããªãœãŒã¹ã®äœ¿çšæéãçããªããçµæãšããŠã¯ã©ãŠãã€ã³ãã©ã³ã¹ããåæžãããŸããããã¯ãå€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ãèšç®éçŽåã®ãã«ãããã»ã¹ã䜿çšããã¢ããªã±ãŒã·ã§ã³ã«ç¹ã«é¢é£ããŸããæéãšãšãã«ç¯çŽé¡ã¯å€§ãããªããçµæžçãªå©ç¹ããããããŸãã
Next.jsã«ãããã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«æŠç¥
Next.jsã¯ããã«ããã£ãã·ã¥ã掻çšããŠã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«ãéããŠããã©ãŒãã³ã¹ãããã«åäžããã匷åãªæ©èœãæäŸããŸãããããã®æŠç¥ã«ãããéçºè ã¯ã¢ããªã±ãŒã·ã§ã³å šäœããŒãããåãã«ãããã®ã§ã¯ãªããäžéšãéžæçã«åãã«ãããããšãã§ããŸãããã®ã€ã³ã¯ãªã¡ã³ã¿ã«ãªã¢ãããŒãã¯ããã«ãæéãããã«æé©åããå šäœçãªå¹çãåäžãããŸãã
éçãµã€ãçæïŒSSGïŒãšã€ã³ã¯ãªã¡ã³ã¿ã«éçåçæïŒISRïŒ
SSGã¯Next.jsã®èœåã®åºæ¬çãªéšåã§ããããã«ãããã»ã¹äžã«éçããŒãžãäœæããããšãã§ããŸããããã«ãããããŒãžãCDNããçŽæ¥æäŸãããããããµãŒããŒã®è² è·ã軜æžãããäžçäžã®Time to First ByteïŒTTFBïŒãåäžããåªããããã©ãŒãã³ã¹ãæäŸãããŸããISRã¯SSGãåºç€ãšããŠãããåçã³ã³ãã³ãã«å¯ŸããŠããã«å¹ççãªã¢ãããŒããæäŸããŸããISRã䜿çšãããšãéçºè ã¯ãµã€ãå šäœãå®å šã«åãã«ãããããšãªããæå®ãããééïŒäŸïŒ1æéããšã1æ¥ããšããŸãã¯ãªã³ããã³ãïŒã§éçããŒãžãåã¬ã³ããªã³ã°ã§ããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ãåãããã€ããããšãªãã³ã³ãã³ãã®æŽæ°ãå¯èœã«ãªããããã°ããã¥ãŒã¹ããŒã¿ã«ããŸãã¯é »ç¹ã«æŽæ°ããã補åã«ã¿ãã°ãæã€eã³ããŒã¹ãµã€ããªã©ãã³ã³ãã³ãé§ååã®ãŠã§ããµã€ãã«æé©ã§ãã
äŸïŒ ISRã䜿çšããŠããã°ããŒãã«ãªãã¥ãŒã¹ãŠã§ããµã€ããæ³åããŠã¿ãŠãã ãããèšäºã¯ãéå ±ãåæ ããããã«å®æçãªééïŒäŸïŒ10åããšïŒã§æŽæ°ã§ããŸããããã¯ããµã€ãå šäœã忢ãããããšãªãå®çŸãããŸãããŠãŒã¶ãŒãããŒãžããªã¯ãšã¹ãããŸãããã£ãã·ã¥ãããããŒãžã§ã³ãåæ€èšŒæéãããå€ãå ŽåãNext.jsã¯ãã£ãã·ã¥ãããããŒãžã§ã³ãè¿ãã€ã€ãããã¯ã°ã©ãŠã³ãã§ããŒãžãåçæã§ããŸããæ¬¡ã®ãªã¯ãšã¹ãã§ã¯ãæ°ããããŒãžã§ã³ãæäŸãããŸããããã¯ãè€æ°ã®ã¿ã€ã ãŸãŒã³ã§éå¶ãããåœéçãªé信瀟ã«ãšã£ãŠå€§ããªå©ç¹ã§ãããè¿ éãªæŽæ°ãšé å»¶ã®åæžãå¯èœã«ããŸãã
ãµãŒããŒãµã€ãã¬ã³ããªã³ã°ïŒSSRïŒãšãã£ãã·ã³ã°
Next.jsã®SSRæ©èœã¯ããµãŒããŒäžã§åçã«ããŒãžãã¬ã³ããªã³ã°ããããšãå¯èœã«ããããã¯SEOãåæãªã¯ãšã¹ãã§ããŒã¿ããã§ããããå¿ èŠãããã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠã§ããSSRã§ã¯ãããŒãžããã©ãŠã¶ã«éä¿¡ãããåã«ããŒã¿ããã§ãããããã¬ã³ããªã³ã°ãããŸããSSRã¯SSG/ISRãšåãæ¹æ³ã§ãã«ããã£ãã·ã¥ãçŽæ¥æŽ»çšããããã§ã¯ãããŸãããããµãŒããŒã¬ãã«ã§ãã£ãã·ã³ã°æŠç¥ãå®è£ ããããšã§ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããŸããäŸãã°ãAPIã¬ã¹ãã³ã¹ãã¬ã³ããªã³ã°ãããHTMLåºåããã£ãã·ã¥ããããšã§ããµãŒããŒã®è² è·ã軜æžããå¿çæéãæ¹åã§ããŸããã³ã³ãã³ããéçã§ããã»ã©ããã£ãã·ã³ã°ããåŸãããã¡ãªããã¯å€§ãããªããŸããRedisãMemcachedã®ãããªããŒã«ããã£ãã·ã³ã°ã«äœ¿çšãããšãé床ãåçã«åäžããŸããããã«ãããäžçäžã®ãŠã§ããµã€ããè¿ éã«èªã¿èŸŒãŸãããŠãŒã¶ãŒã«æé«ã®äœéšãæäŸããããšã容æã«ãªããŸãã
äŸïŒ æ¥æ¬ã®eã³ããŒã¹ã¹ãã¢ã¯ã補åã«ã¿ãã°ããã£ãã·ã¥ã§ããŸãããµãŒããŒãµã€ãã¬ã³ããªã³ã°ãšãã£ãã·ã³ã°ã䜿çšããããšã§ãé »ç¹ã«å€æŽãããªãããŒãžã®äžéšããã£ãã·ã¥ã§ããŸããããã«ãããããŒã¿ããŒã¹ãžã®ãªã¯ãšã¹ãæ°ãæžãããŠã§ããµã€ãã®å¿çæéãåäžããŸãã
ç»åæé©å
Next.jsã«ã¯ãæ§ã ãªããã€ã¹ãç»é¢ãµã€ãºã«åãããŠç»åãæé©åããããã»ã¹ãç°¡çŽ åãããå èµã®ç»åæé©åã³ã³ããŒãã³ããå«ãŸããŠããŸããç»åæé©åæ©èœã¯ãã«ããã£ãã·ã¥ãšçµ±åãããŠããŸãããã«ãäžã«ç»åãåŠçããããšãæé©åãããããŒãžã§ã³ããã£ãã·ã¥ãããŸããããã«ããããã«ãããŸããã§ç»åãç¹°ãè¿ãåæé©åããå¿ èŠããªããªãããã«ãããã»ã¹ãå€§å¹ ã«é«éåãããŸããç»åã¯ãªã³ããã³ãã§æé©åãããCDNãéããŠæäŸãããããããŠãŒã¶ãŒã®å Žæã«é¢ä¿ãªãèªã¿èŸŒã¿æéãççž®ãããŸããããã¯ãèŠèŠçãªã³ã³ãã³ããè±å¯ãªã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠã§ãããäžçäžã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããŸãã
äŸïŒ äžçäžã®èгå å°ã玹ä»ããæ è¡ãŠã§ããµã€ãã¯ãNext.jsã®ç»åæé©åæ©èœãå©çšã§ããŸãããšããã§ã«å¡ãäžéã®é·åãã¿ãŒãžã»ããã«ã®ç»åã¯ãç°ãªãç»é¢ãµã€ãºããã©ãŒãããã«åãããŠæé©åãããäžçäžã®ãŠãŒã¶ãŒã«æé©ãªèªã¿èŸŒã¿ããã©ãŒãã³ã¹ãä¿èšŒããŸããããã«ãããèªã¿èŸŒã¿æéãççž®ããããã©ãŠãžã³ã°äœéšãåäžããŸãã
APIã«ãŒãã®ã³ã³ãã€ã«ãšãµãŒããŒã¬ã¹é¢æ°
Next.jsã¯ãAPIã«ãŒãã«ãã䜿çšããããµãŒããŒã¬ã¹é¢æ°ã®äœæãç°¡çŽ åããŸãããã«ãããã»ã¹äžãNext.jsã¯ãããã®APIã«ãŒãããµãŒããŒã¬ã¹é¢æ°ã«ã³ã³ãã€ã«ããŸãããã«ããã£ãã·ã¥ã¯ãããã®ã³ã³ãã€ã«æžã¿é¢æ°ãä¿åããã³ãŒãã倿Žãããªãéãåã³ã³ãã€ã«ããå¿ èŠããªããªããŸããããã¯ãè€æ°ã®ãµãŒããŒã¬ã¹é¢æ°ãå€§èŠæš¡ã§è€éãªAPIãæ±ãå Žåã«ç¹ã«æçã§ããããã«ãããAPIã®ãããã€ãšæŽæ°ã®å¹çãåäžããŸãããµãŒããŒã¬ã¹é¢æ°ã䜿çšãããšãåºç€ãšãªãã€ã³ãã©ã管çããããšãªããå¿ èŠã«å¿ããŠã¹ã±ãŒã«ã§ãããã€ã¯ããµãŒãã¹ãæ§ç¯ã§ããŸããããã«ããããããã€ãé«éåãããã¹ã±ãŒã©ããªãã£ãåäžããŸãããã®é床ã¯ãããŸããŸãªåœã«åçãªã³ã³ãã³ããç¹å®ã®æ©èœãæäŸããããã«äžå¯æ¬ ã§ãã
äŸïŒ åœéçãªé éäŒç€Ÿã¯ããµãŒããŒã¬ã¹é¢æ°ãAPIã«ãŒããšããŠäœ¿çšããŠãé éæéã®èšç®ãè·ç©ã®è¿œè·¡ããã®ä»ã®ãªã¢ã«ã¿ã€ã æ å ±ãäžçäžã®ãŠãŒã¶ãŒã«æäŸã§ããŸãããããã®é¢æ°ã¯ãã«ãããã»ã¹äžã«ã³ã³ãã€ã«ããããã£ãã·ã¥ãããããããŠãŒã¶ãŒãžã®è¿ éãªå¿çæéãä¿èšŒãããŸãã
å®è·µçãªå®è£ ãšãã¹ããã©ã¯ãã£ã¹
Next.jsãããžã§ã¯ãã§ãã«ããã£ãã·ã¥ãšã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«æŠç¥ãå®è£ ããã®ã¯ç°¡åã§ãã以äžã«ãäž»èŠãªã¹ããããšãã¹ããã©ã¯ãã£ã¹ãããã€ã玹ä»ããŸãïŒ
1. Next.jsãæ£ããèšå®ãã
ããã©ã«ãã§ã¯ãNext.jsã®ãã«ããã£ãã·ã¥ã¯æå¹ã«ãªã£ãŠããŸãããã ãããããžã§ã¯ãã«`.next`ãã£ã¬ã¯ããªãååšãããã«ãããã»ã¹ããé€å€ãããŠããªãããšïŒäŸïŒ`.gitignore`ãã¡ã€ã«å ïŒã確èªããããšã§ããã£ãã·ã¥ãæ£ããèšå®ãããŠããããšãä¿èšŒã§ããŸãããŸããç°å¢ããã£ãã·ã¥ã广çã«å©çšã§ããããã«æ£ããèšå®ãããŠããããšã確èªããŠãã ãããäŸãã°ãCI/CDã·ã¹ãã ã䜿çšããŠããå Žåãå¯èœã§ããã°ãã«ãéã§`.next`ãã£ã¬ã¯ããªãä¿æããããã«èšå®ãããšãã¡ãªãããå€§å¹ ã«åäžããŸãããã£ãã·ã¥ã®å Žæãèæ ®ããŠãã«ãã¹ã¯ãªãããCI/CDèšå®ã倿Žãã誀ã£ãŠã¯ãªã¢ãããªãããã«ããå¿ èŠããããããããŸããã
2. ã³ãŒããæé©åãã
ãã«ããã£ãã·ã¥ã¯åŒ·åã§ãããããæé©åãããã³ãŒããæžãããšã®ä»£ããã«ã¯ãªããŸãããã³ãŒããå¹ççã§ãäŸåé¢ä¿ãææ°ã§ããããã«ãããã»ã¹ãå¹çåãããŠããããšã確èªããŠãã ãããæªäœ¿çšã®äŸåé¢ä¿ãå€ãããã±ãŒãžããªãããããžã§ã¯ãã確èªããŠãã ãããã³ãŒããã¯ãªãŒã³ã§ããã»ã©ããã«ããã£ãã·ã¥ããã£ãŠããã«ãã¯éããªããŸãããŸããã¢ããªã±ãŒã·ã§ã³ã®ãµã€ãºãæ éã«æ€èšããŠãã ãããã¢ããªã倧ããã»ã©ãã¡ãªããã¯å€§ãããªããŸããå°ããªã¢ããªãæ©æµãåããããŸããã倧ããªã¢ããªã§ã¯ããã©ãŒãã³ã¹ã®åäžãã¯ããã«å€§ãããªããŸãã
3. SSGãšISRãæŠç¥çã«æŽ»çšãã
SSGãšISRã¯ãããŒãžã®ã¬ã³ããªã³ã°ãšã³ã³ãã³ãé ä¿¡ãæé©åããããã®åŒ·åãªããŒã«ã§ãããã«ãããã»ã¹äžã«éççæïŒSSGïŒã«é©ããããŒãžã決å®ããŸããé »ç¹ã«å€æŽãããã³ã³ãã³ãã«ã¯ãå®å šãªåãã«ããªãã§ã³ã³ãã³ãã®æŽæ°ãå¯èœã«ããISRãå©çšããŸããã³ã³ãã³ãã®æŽæ°é »åºŠãè©äŸ¡ããŠãé©åãªåæ€èšŒééãæ±ºå®ããŸããããã«ãããããã©ãŒãã³ã¹ãšææ°ã³ã³ãã³ãã®æé©ãªãã©ã³ã¹ãåŸãããŸããããããæã倧ããªå©çããããããŸãããããã®ã¬ã³ããªã³ã°ã¡ãœããã®ããã«ããŒã¿ãã§ããæŠç¥ãæé©åããŠãã ããããã«ãããã»ã¹äžã«å¹ççã«ããŒã¿ããã§ããããããšããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæé©åããéµã§ãã
4. ãµãŒããŒãµã€ããã£ãã·ã³ã°ãå®è£ ãã
SSRããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããµãŒããŒãµã€ãã§ãã£ãã·ã³ã°æŠç¥ãå®è£ ããŠããµãŒããŒã®è² è·ã軜æžããå¿çæéãæ¹åããŸããRedisãMemcachedãªã©ã®ãã£ãã·ã³ã°ã©ã€ãã©ãªã䜿çšããŠãAPIã¬ã¹ãã³ã¹ãã¬ã³ããªã³ã°ãããHTMLãä¿åããããšãæ€èšããŠãã ããããã£ãã·ã¥ãããçãç£èŠããŠããã£ãã·ã³ã°æŠç¥ã®æå¹æ§ãè©äŸ¡ããããã«å¿ããŠãã£ãã·ã³ã°èšå®ã調æŽããŸãããµãŒããŒãäžçäžã®ãŠãŒã¶ãŒããã¢ã¯ã»ã¹ãããå ŽåããµãŒããŒãµã€ããã£ãã·ã³ã°ã¯éåžžã«éèŠã§ãã
5. ç»åæé©åæ©èœãå©çšãã
Next.jsã®å èµç»åæé©åã³ã³ããŒãã³ããæå€§éã«æŽ»çšããŠãã ããããã®ã³ã³ããŒãã³ãã¯ãæ§ã ãªããã€ã¹ãç»é¢ãµã€ãºããã©ãŒãããã«åãããŠç»åãèªåçã«æé©åããŸãããµã€ããæé«ã®é床ã§åäœããããšãä¿èšŒããçŽ æŽãããæ¹æ³ã§ããæé©åã¯ãã«ãããã»ã¹ã«çµã¿èŸŒãŸããŠããããã£ãã·ã¥ãšå®å šã«çµ±åãããŠããŸããNext.jsã«é©åãªç»åãµã€ãºãšãã©ãŒããããæäŸããŠãã ãããããã«ãããæé©åãå¹ççã«ãªãããŠã§ããµã€ãã®èªã¿èŸŒã¿ãéããªããŸãã
6. ãã«ãæéãç£èŠã»åæãã
ãã«ãæéã宿çã«ç£èŠããŠããã«ããã£ãã·ã¥ãšã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«æŠç¥ã®æå¹æ§ã远跡ããŸããããã«ããã¯ãæ¹åã®äœå°ãããé åãç¹å®ããŸããNext.jsã®åææ©èœããã«ãæéããã·ã¥ããŒãã®ãããªããŒã«ã䜿çšããŠããã©ãŒãã³ã¹ãç£èŠããŸããããã«ããããã«ããã£ãã·ã¥ãæé©ã«æ©èœããŠããããšã確èªã§ããŸãããã«ãæéãå¢å ããå Žåã¯ãäŸåé¢ä¿ã®å€æŽãã³ãŒãã®ä¿®æ£ããµãŒããŒèšå®ã®å€æŽãªã©ãèããããåå ã調æ»ããŠãã ããã
7. æé©ãªãã£ãã·ã¥ç®¡çã®ããã«CI/CDãèšå®ãã
ãã«ããã£ãã·ã¥ã广çã«ç®¡çããããã«ãCI/CDãã€ãã©ã€ã³ãé©åã«èšå®ããŸãããã«ãéã§ãã£ãã·ã¥ãä¿æãããããã«ããŠãã ãããCI/CDãããã€ããŒã䜿çšããå Žåããã«ãéã§ãã£ãã·ã¥ãä¿æãããããšãä¿èšŒããããšãéèŠã§ããCI/CDã·ã¹ãã ãèšå®ããŠã`.next`ãã£ã¬ã¯ããªïŒãŸãã¯ãããžã§ã¯ãã§èšå®ããããã«ããã£ãã·ã¥ãã£ã¬ã¯ããªïŒãä¿åããã³åŸ©å ããããã«ããŸããããã«ããããã«ãæéãå€§å¹ ã«ççž®ã§ããŸããäžéšã®CI/CDãã©ãããã©ãŒã ã¯èªåçã«ãã£ãã·ã¥ç®¡çãåŠçããŸãããæåã§èšå®ãå¿ èŠãªå ŽåããããŸãããã«ããã£ãã·ã¥ããã«ãéã§èª€ã£ãŠã¯ãªã¢ãŸãã¯ç¡å¹åãããŠããªãããšã確èªããããã«ãCI/CDèšå®ãè©äŸ¡ããŠãã ãããããã©ãŒãã³ã¹åäžã®ããã«ãCI/CDã·ã¹ãã ã§ãã«ããã£ãã·ã¥ãªã©ã®ãã£ãã·ã³ã°æŠç¥ã䜿çšããããšãæ€èšããŠãã ããã
8. äŸåé¢ä¿ãæé©åãã
å€§èŠæš¡ãŸãã¯äžèŠãªäŸåé¢ä¿ã®äœ¿çšãæå°éã«æããŸããäŸåé¢ä¿ãå°ãªãã»ã©ããã«ãæéã¯éããªããŸãããããžã§ã¯ãã®äŸåé¢ä¿ã宿çã«ç£æ»ããæªäœ¿çšãŸãã¯å€ãããã±ãŒãžãåé€ããŸããäŸåé¢ä¿ãææ°ã®ç¶æ ã«ä¿ã¡ãŸããããã©ãŒãã³ã¹ã®æ¹åããã°ä¿®æ£ã®æ©æµãåããããã«ãäŸåé¢ä¿ã宿çã«ææ°ããŒãžã§ã³ã«æŽæ°ããŸãã`npm update`ãŸãã¯`yarn upgrade`ã³ãã³ãã䜿çšããŠããã±ãŒãžãæŽæ°ããŸãããã«ãæéãççž®ããããã«ããµãŒãããŒãã£ã©ã€ãã©ãªã®äœ¿çšãæå°éã«æããŸããã©ã€ãã©ãªã远å ãããã³ã«ãã³ã³ãã€ã«æéãå¢å ããŸãã
9. ã³ãŒãåå²
ã³ãŒãåå²ã¯ãçŸä»£ã®JavaScriptãã³ãã©ãŒã®äžæ žæ©èœã§ãããNext.jsã®ãã«ãããã©ãŒãã³ã¹ã«ãšã£ãŠéåžžã«æçã§ããNext.jsãæäŸããåçã€ã³ããŒãã䜿çšããŠãã³ãŒããããå°ãã管çãããããã£ã³ã¯ã«åå²ããŸããããã«ãããåããŒãžã«å¿ èŠãªã³ãŒãã®ã¿ãèªã¿èŸŒãŸããããã«ãªããã¢ããªã±ãŒã·ã§ã³ã®åæèªã¿èŸŒã¿æéãå€§å¹ ã«ççž®ã§ããŸãããã®æŠç¥ã¯ãã³ãŒãã®äžã€ã®ãã£ã³ã¯ãžã®å€æŽãã¢ããªã±ãŒã·ã§ã³å šäœãåãã«ãããå¿ èŠããªãããããã£ãã·ã³ã°èœåãæé©åããŸããããã¯ç¹ã«å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã«é©çšããããã«ãæããã³å®è¡æã«å€§å¹ ãªããã©ãŒãã³ã¹åäžããããããŸãã
åœéçãªèæ ®äºé
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããå Žåãããã€ãã®åœéåããã³ããŒã«ãªãŒãŒã·ã§ã³ã®åŽé¢ãèæ ®ããããšãäžå¯æ¬ ã§ãããNext.jsã¯ãããã匷åã«ãµããŒãããŠããŸãããããããã«ããã£ãã·ã¥ãšã©ã®ããã«çžäºäœçšããããçè§£ããããšã¯ãã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«æé«ã®ããã©ãŒãã³ã¹ãæäŸããããã«åœ¹ç«ã¡ãŸãã
1. åœéåïŒi18nïŒãšããŒã«ãªãŒãŒã·ã§ã³ïŒl10nïŒ
Next.jsã¯i18nãšl10nã«å¯ŸããŠåªãããµããŒããæäŸããŠããŸããå èµã®`next/i18n`ã¢ãžã¥ãŒã«ãä»ã®ãµãŒãããŒãã£ã©ã€ãã©ãªã䜿çšããŠãå€èšèªã³ã³ãã³ããåŠçããã¢ããªã±ãŒã·ã§ã³ãç°ãªãèšèªãå°åã«é©å¿ãããããšãã§ããŸããi18nã䜿çšããå ŽåãNext.jsã¯ç°ãªããã«ãæŠç¥ããµããŒãããŸãããã«ããã£ãã·ã¥ãå©çšããå ŽåãåèšèªããŒãžã§ã³ã®ãã£ãã·ã¥ãæé©åã§ãããã«ããé«éåãããŸããéžæããã©ã€ãã©ãªããã«ããã£ãã·ã¥ãšã©ã®ããã«çžäºäœçšããããçè§£ããŠãã ããã翻蚳ãå¿ èŠãªéçãµã€ããæ±ãå Žåã¯ã`next export`ã³ãã³ãã®äœ¿çšãæ€èšããŠãã ãããããã«ããã翻蚳ãããã³ã³ãã³ãã®ãã«ãããã»ã¹ãæé©åã§ããŸãã
2. ã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒ
CDNãå©çšããŠãã¢ããªã±ãŒã·ã§ã³ã®ã¢ã»ãããã°ããŒãã«ã«é ä¿¡ããŸããCDNã¯ãäžçäžã«é 眮ããããµãŒããŒã«ã³ã³ãã³ãã®ãã£ãã·ã¥ã³ããŒãä¿åããç°ãªãå°ççå°åã®ãŠãŒã¶ãŒã®é å»¶ãæžãããèªã¿èŸŒã¿æéãæ¹åããŸããéžæããCDNãããã€ããŒãšã·ãŒã ã¬ã¹ã«é£æºããããã«Next.jsã¢ããªã±ãŒã·ã§ã³ãèšå®ããŸããNext.jsã¢ããªã±ãŒã·ã§ã³ã«é©åãªãã£ãã·ã¥ããããŒãå®è£ ããŠãCDNã«ã³ã³ãã³ããå¹ççã«ãã£ãã·ã¥ããã³æäŸããæ¹æ³ãæç€ºããŸãããã®ãã«ããã£ãã·ã¥ãšCDNã®çµã¿åããã«ãããã©ãã«ããŠã誰ããè¿ éã«èªã¿èŸŒããããã«ãªããŸãã
3. ã¿ã€ã ãŸãŒã³ãšå°åèšå®
ç°ãªãã¿ã€ã ãŸãŒã³ãšå°åèšå®ãæ£ããåŠçã§ããããã«ã¢ããªã±ãŒã·ã§ã³ãèšèšããŸãããŠãŒã¶ãŒã®ããŒã«ã«ã¿ã€ã ãŸãŒã³ã«å¿ããŠæ¥ä»ãšæå»ããã©ãŒãããããããã«ã©ã€ãã©ãªã䜿çšããããšãæ€èšããŠãã ãããéè²šãæ£ããåŠçããŸããç°ãªãå°åã®ããã«é貚èšå·ã翻蚳ããå¿ èŠããããããããŸãããi18nã¢ãžã¥ãŒã«ã䜿çšãããšããããã®èŠçŽ ã®ç¿»èš³ãã¯ããã«ç°¡åã«ãªããŸããããã«ãå šäœçãªããã©ãŒãã³ã¹ãåäžãããããã«ãç°ãªãããã€ã¹ã«åãããŠç»åãµã€ãºãæé©åããŠãã ããã
4. ãµãŒããŒã®å Žæ
ã¿ãŒã²ãããªãŒãã£ãšã³ã¹ã«å°ççã«è¿ããµãŒããŒã®å ŽæãéžæããŸããã°ããŒãã«ãªããã©ãŒãã³ã¹ãåäžãããããã«ãã¢ããªã±ãŒã·ã§ã³ãCDNã«ãããã€ããããšãæ€èšããŠãã ããããµãŒããŒã®å Žæã«æ³šæããŠãã ããããµãŒããŒããšã³ããŠãŒã¶ãŒã«è¿ãã»ã©ããŠã§ããµã€ãã®èªã¿èŸŒã¿ã¯éããªããŸãããµãŒããŒãµã€ãã¬ã³ããªã³ã°ãAPIã«ãŒãã䜿çšããŠããå Žåã¯ãã°ããŒãã«ãŠãŒã¶ãŒã«æãäœãé å»¶ãæäŸãããµãŒããŒãªãŒãžã§ã³ãéžæããããšãæ€èšããŠãã ããã
äŸïŒ è€æ°ã®åœã§ååã販売ããã°ããŒãã«ãªeã³ããŒã¹äŒæ¥ã¯ãi18nãšl10nã䜿çšããŠãè€æ°ã®èšèªã§ããŒã«ã©ã€ãºãããã³ã³ãã³ããæäŸããŸããå瀟ã¯CDNãå©çšããŠãŠã§ããµã€ãã®éçã¢ã»ããããã¹ãã§ããŸããæå€§ã®é床ã確ä¿ããããã«ãåå°åã«åå¥ã®ãããã€ã¡ã³ãã§ããŒã«ã©ã€ãºããããµã€ããæ§ç¯ããããšãæ€èšãã¹ãã§ãããŸããããŒã¿ãã©ã€ãã·ãŒèŠä»¶ãªã©ã®å°åèŠå¶ãèæ ®ããããšãéèŠã§ãããŠã§ããµã€ããéãã»ã©ã顧客ãå蚪ããŠååããµãŒãã¹ãè³Œå ¥ããå¯èœæ§ãé«ãŸããŸãã
äžè¬çãªãã«ããã£ãã·ã¥åé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
Next.jsã®ãã«ããã£ãã·ã¥ã¯å ç¢ã§ä¿¡é Œæ§ããããŸãããæã«ã¯åé¡ãäºæããªãåäœã«ééããããšããããŸãã以äžã¯äžè¬çãªãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®æé ã§ãïŒ
1. ãã£ãã·ã¥ã®ã¯ãªã¢
ãã«ãã®åé¡ã«ééããå Žåããã«ããã£ãã·ã¥ãã¯ãªã¢ããããšã解決ãžã®ç¬¬äžæ©ãšãªãããšãå€ãã§ãã`.next`ãã£ã¬ã¯ããªãåé€ããŠããã¢ããªã±ãŒã·ã§ã³ãåãã«ãããããšã§ãã£ãã·ã¥ãã¯ãªã¢ã§ããŸãããã£ã¬ã¯ããªãåé€ããåŸã`npm run build`ãŸãã¯`yarn build`ãå®è¡ããŸãããã£ãã·ã¥ãã¯ãªã¢ããããšã§åé¡ã解決ããå Žåããã£ãã·ã¥ã®ç ŽæãŸãã¯å€ããã£ãã·ã¥ãããã³ãŒãããŒãžã§ã³ãåå ã§ããå¯èœæ§ããããŸãã
2. ãã£ãã·ã¥ã®ç¡å¹å
æã«ã¯ãæåã§ãã£ãã·ã¥ãç¡å¹åããå¿ èŠããããããããŸãããããã¯ãäŸåé¢ä¿ã®å€æŽãèšå®ã®å€æŽããŸãã¯ãã«ãããŒã«ã®æŽæ°ãåå ã§ããå¯èœæ§ããããŸãããã£ãã·ã¥ãç¡å¹åããæãç°¡åãªæ¹æ³ã¯ãäžèšã®ããã«`.next`ãã£ã¬ã¯ããªãã¯ãªã¢ããããšã§ããç°å¢å€æ°ããã«ãã³ãã³ãã䜿çšããŠãã£ãã·ã¥ã®æŽæ°ã匷å¶ããããšãã§ããŸããäŸãã°ããã«ãããã»ã¹ã«ã¿ã€ã ã¹ã¿ã³ãã远å ããŠåŒ·å¶çã«æ°ãããã«ããè¡ãããšãã§ããŸãããã«ãã³ãã³ãå®è¡æã«`--no-cache`ãã©ã°ã䜿çšïŒäŸïŒ`next build --no-cache`ïŒããŠãäžæçã«ãã£ãã·ã¥ãç¡å¹ã«ããŸãã
3. äŸåé¢ä¿ã®åé¡
ãããžã§ã¯ãã®äŸåé¢ä¿éã®éäºææ§ããã«ããšã©ãŒã«ã€ãªããããšããããŸããäŸåé¢ä¿ãã¢ããã°ã¬ãŒããŸãã¯ããŠã³ã°ã¬ãŒãããŠã¿ãŠãåé¡ã解決ãããã©ããã確èªããŠãã ãããæ¥µç«¯ãªç¶æ³ã§ã¯ã`node_modules`ãã£ã¬ã¯ããªãã¯ãªãŒã³ã¢ããããŠãã`npm install`ãŸãã¯`yarn install`ãå®è¡ããŠäŸåé¢ä¿ãåæ§ç¯ã§ããŸãã
4. äžæ£ãªãã«ãèšå®
Next.jsã®èšå®ïŒäŸïŒ`next.config.js`ïŒãå確èªããæ£ããèšå®ãããŠããããšã確èªããŠãã ãããäžæ£ãªèšå®ã¯ããã«ãããã»ã¹ã§äºæããªãåäœãåŒãèµ·ããå¯èœæ§ããããŸããäžæ£ãªç°å¢å€æ°ãééã£ããã¡ã€ã«ãã¹ãäžé©åãªèšå®ãªã©ããšã©ãŒãèšå®ãã¹ããªããèšå®ãèŠçŽããŠãã ããã广çãªãã£ãã·ã³ã°ã«ã¯ãé©åã«èšå®ããããã«ãããã»ã¹ãäžå¯æ¬ ã§ãã
5. ãã©ã°ã€ã³ã®ç«¶å
ã«ã¹ã¿ã ãã©ã°ã€ã³ãwebpackèšå®ã䜿çšããŠããå Žåããããã®éã®ç«¶åãåå ã§ããå¯èœæ§ããããŸãããã©ã°ã€ã³ãç¡å¹ã«ãããã³ã¡ã³ãã¢ãŠãããŠãåé¡ã解決ãããã©ãã詊ããŠã¿ãŠãã ããããã©ã°ã€ã³ã®ç«¶åãç¹å®ããå Žåã¯ããã©ã°ã€ã³ãææ°ããŒãžã§ã³ã«æŽæ°ããããã©ã°ã€ã³ã®èšå®ã倿ŽããããŸãã¯äºææ§ã®ããä»£æ¿ææ®µãèŠã€ãããªã©ãå¯èœãªè§£æ±ºçã調æ»ããŠãã ããã
6. CI/CDåºæã®åé¡
CI/CDã䜿çšããŠããå Žåããã£ãã·ã³ã°ã«é¢ããç¹å®ã®åé¡ãçºçããããšããããŸããCI/CDãã€ãã©ã€ã³ããã§ãã¯ããŠã`.next`ãã£ã¬ã¯ããªããã«ãéã§æ£ããä¿åããã³åŸ©å ãããŠããããšã確èªããŠãã ãããããã§ãªãå Žåããã£ãã·ã¥ã¯å¹æçã«äœ¿çšãããŠããŸãããCI/CDèšå®ã調æ»ããŠã`.next`ãã£ã¬ã¯ããªããã«ãéã§æ£ããä¿æããã³åŸ©å ãããŠããããšã確èªããŸãããšã©ãŒããªããCI/CDã®ãã«ããã°ã確èªããŠãã ããã
7. Next.jsã®ã¢ããã°ã¬ãŒã
ææ°ããŒãžã§ã³ã®Next.jsã䜿çšããããšã¯éèŠã§ããåæ°ãããªãªãŒã¹ã«ã¯æ¹åããã°ä¿®æ£ãæé©åãå«ãŸããŠããŸãããã«ããã£ãã·ã¥ã®åé¡ãçºçããŠããå Žåã¯ãææ°ããŒãžã§ã³ãžã®ã¢ããã°ã¬ãŒããæ€èšããŠãã ããããã¹ãŠã®äŸåé¢ä¿ãææ°ããŒãžã§ã³ã®Next.jsãšäºææ§ãããããšã確èªããŠãã ãããæé©ãªããã©ãŒãã³ã¹ãšå®å®æ§ãä¿èšŒããããã«ãããŒãžã§ã³ãææ°ã®ç¶æ ã«ä¿ã£ãŠãã ããã
çµè«
Next.jsãã«ããã£ãã·ã¥ã¯ããã«ããšãããã€ã®ã¯ãŒã¯ãããŒãæé©åããããšããéçºè ã«ãšã£ãŠéåžžã«è²ŽéãªããŒã«ã§ãããã«ããã£ãã·ã¥ã®ä»çµã¿ãçè§£ããã€ã³ã¯ãªã¡ã³ã¿ã«ã³ã³ãã€ã«æŠç¥ãå®è£ ããããšã§ããã«ãæéãåçã«ççž®ããéçºè ã®çç£æ§ãåäžãããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãé«ããããšãã§ããŸããSSGãISRããç»åæé©åãAPIã«ãŒãã®ã³ã³ãã€ã«ãŸã§ãNext.jsã¯ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã«é«æ§èœãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã»ãããã€ããããã®å æ¬çãªæ©èœã»ãããæäŸããŸãããã®ããã°èšäºã§æŠèª¬ãããã¹ããã©ã¯ãã£ã¹ãšãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ãã³ãã«åŸãããšã§ãNext.jsãã«ããã£ãã·ã¥ã®å¯èœæ§ãæå€§éã«åŒãåºããNext.jsãããžã§ã¯ãã§è¶ é«éã®ãããã€ãå®çŸããæçµçã«éçºé床ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸãããã£ãã·ã³ã°ã®åãæŽ»çšãããããã€æéãççž®ãããã®ãèŠãŠãã ããïŒ