pnpm ãšã¯ïŒ
- ã°ããŒãã«ã¹ãã¢ã«ããã±ãŒãžãäžå 管çããåãããžã§ã¯ãããããŒããªã³ã¯ã§åç §ããããããã£ã¹ã¯äœ¿çšéãå€§å¹ ã«æžã
- npmãyarnããé«éãªã€ã³ã¹ããŒã«ãå®çŸãç¹ã«CIç°å¢ã§ã®å·®ãé¡è
- 峿 Œãªnode_modulesæ§é ã«ãããpackage.jsonã«æžããŠããªãããã±ãŒãžã誀ã£ãŠäœ¿ãã幜éäŸåãã鲿¢
- ã¯ãŒã¯ã¹ããŒã¹æ©èœã§ã¢ãã¬ã管çã«ã察å¿ããŠãããTurborepoãNxãšçµã¿åãããŠäœ¿ãããããšãå€ã
pnpmã£ãŠnpmãšäœãéãã®ïŒååã䌌ãŠããã©âŠ
æå€§ã®éãã¯ããã±ãŒãžã®ä¿åæ¹æ³ã ããnpmã¯åãããžã§ã¯ãã«ããã±ãŒãžãã³ããŒãããã©ãpnpmã¯ã°ããŒãã«ã¹ãã¢ã«1ã€ã ãä¿åããŠãããããããŒããªã³ã¯ã匵ããã ãåãããã±ãŒãžã10åã®ãããžã§ã¯ãã§äœ¿ã£ãŠãããã£ã¹ã¯äžã¯1ã³ããŒã ãã§æžãã
ããŒããªã³ã¯ã£ãŠäœïŒ
ãã¡ã€ã«ã®ãå¥åãã¿ãããªãã®ã ããã³ããŒãšéã£ãŠãã£ã¹ã¯å®¹éãã»ãŒæ¶è²»ããªããã ã100MBã®ããã±ãŒãžã10ãããžã§ã¯ãã§äœ¿ããšãnpmãªã1GBãpnpmãªãçŽ100MBã§æžããéçºãã·ã³ã®ãã£ã¹ã¯ãå©ãããã
éãã¯ã©ã®ãããéãã®ïŒ
ãã³ãããŒã¯ã«ããããã©ãnpmã®2ã3åéãããšãå€ãããç¹ã«ãã£ãã·ã¥ãå¹ããŠãç¶æ ïŒ2åç®ä»¥éã®ã€ã³ã¹ããŒã«ïŒã§ã¯çéãCIç°å¢ã§æ¯åã€ã³ã¹ããŒã«ããå Žåã«ãæéãšã³ã¹ãã®ç¯çŽå¹æã倧ãããã
幜éäŸåã£ãŠäœïŒæãååã ãã©âŠ
npmã®node_modulesã¯ãã©ãããªæ§é ã§ãpackage.jsonã«æžããŠãªãã鿥çãªäŸåããã±ãŒãžããçŽæ¥importã§ãã¡ãããã ãããã幜éäŸåïŒphantom dependencyïŒãããæ¥ãã®ããã±ãŒãžãæ¶ãããšçªç¶åããªããªãæããã°ã®åå ã ã
pnpmã¯ãããã©ããã£ãŠé²ãã®ïŒ
pnpmã¯node_modulesã®äžã«ã·ã³ããªãã¯ãªã³ã¯ã®éå±€æ§é ãäœã£ãŠãpackage.jsonã«æç€ºçã«æžããããã±ãŒãžããã¢ã¯ã»ã¹ã§ããªãããã«ããŠããã ã峿 Œã ãã©ãããã®ãããã§ãæžãå¿ããã«æ©ãæ°ã¥ããã
ã¢ãã¬ãã§ã䜿ããã®ïŒ
pnpmã®ã¯ãŒã¯ã¹ããŒã¹æ©èœã¯ããªãåªç§ã§ãTurborepoãNxã®ããã¯ãšã³ããšããŠäœ¿ãããããšãå€ãããnpm workspacesãyarn workspacesããå®å®ããŠããšãã声ãå€ãããæè¿ã®ã¢ãã¬ãæ§æã§ã¯ãpnpm + Turborepoããå®çªã®çµã¿åããã«ãªãã€ã€ããã