internal packages - JayChae/bookiwi-frontend GitHub Wiki

Build Internal Package in Turborepo

μž‘μ„±μž: 채쒅민

😀 문제

β€œμ–΄λ–€ λ¬Έμ œκ°€ μžˆμ—ˆλ‚˜μš”β€

turborepoμ—μ„œ λ‚΄λΆ€ νŒ¨ν‚€μ§€μΈ @bookiwi/epubjs λΉŒλ“œ μ‹€νŒ¨

πŸ“¦ monorepo-root/
β”‚
β”œβ”€β”€ πŸ“„ turbo.json/
β”œβ”€β”€ πŸ“ packages/
β”‚   └── πŸ“ epubjs/               # πŸ“¦ epub κ΄€λ ¨ λ‚΄λΆ€ νŒ¨ν‚€μ§€
β”‚
└── πŸ“ apps/
    └── πŸ“ web/                  # λΆν‚€μœ„ μ›Ήμ•±

λΉŒλ“œ 였λ₯˜

🧐 문제 원인

β€œλ¬Έμ œ 원인이 λ¬΄μ—‡μΈκ°€μš”β€

turborepoλŠ” 각 νŒ¨ν‚€μ§€μ˜ build λͺ…령이 μ‹€ν–‰λœ ν›„ μ–΄λ–€ 파일이 μƒμ„±λ˜λŠ”μ§€(outputs) λ₯Ό μΆ”μ ν•œλ‹€. ν•˜μ§€λ§Œ @bookiwi/epubjs νŒ¨ν‚€μ§€μ—λŠ” build λͺ…λ Ή 이후 μƒμ„±λ˜λŠ” 파일 κ²½λ‘œκ°€ turbo.json의 outputs에 μ§€μ •λ˜μ§€ μ•Šμ•„μ„œ, turborepoκ°€ "아무것도 μƒμ„±λ˜μ§€ μ•Šμ•˜λ‹€"κ³  νŒλ‹¨ν•˜κ³  κ²½κ³  및 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚¨ 것.

{
  "$schema": "https://turbo.build/schema.json",
  "ui": "tui",
  "tasks": {
    "build": {
      "dependsOn": ["^build"],
      "inputs": ["$TURBO_DEFAULT$", ".env*"],
      "outputs": []
    },
...

😎 ν•΄κ²°μ±…

β€œν•΄κ²°μ±…μ€ λ¬΄μ—‡μΈκ°€μš”β€

turbo.json의 pipeline.build.outputs에 ν•΄λ‹Ή νŒ¨ν‚€μ§€μ˜ λΉŒλ“œ 결과물이 μƒμ„±λ˜λŠ” 디렉터리λ₯Ό λͺ…μ‹œν•΄μ€¬λ‹€.

🀩 적용

β€œμ–΄λ–»κ²Œ μ μš©ν–ˆλ‚˜μš”β€

//turbo.json
{
  "$schema": "https://turbo.build/schema.json",
  "ui": "tui",
  "tasks": {
    "build": {
      "dependsOn": ["^build"],
      "inputs": ["$TURBO_DEFAULT$", ".env*"],
      "outputs": ["dist/**"]
    },
...