ํฐ๋ณด๋ ํฌ๋ก ๊ตฌ์ถํ ํ๋ก์ ํธ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ turbo.json ํ์ผ์ ์์ ๊ฐ๋ค.
์ฐฉ๊ฐํ๋ ๊ฒ
turbo.json
{
"pipeline": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**"]
},
...
}
์ด๊ฑธ ๋ณด๊ณ ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ outputs์ด ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ dist์๋ ์ ์ฅ๋๊ฒ ๊ตฌ๋ ์๊ฐํ๋ค.
๊ทผ๋ฐ turbo run build๋ฅผ ํ๊ณ ์๋ฌด๋ฆฌ ์ฐพ์๋ด๋ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ dist ํด๋๊ฐ ๋ณด์ด์ง์์๋ค;;
๋ฃจํธ์์ ๋น๋๋ฅผ ํ๊ณ ๋๋ฉด, ์ํฌ์คํ์ด์ค ์์
๋ฌผ์ธ ํจํค์ง, ํ์ ํ๋ก์ ํธ๋ค์ ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฃจํธ์๋ ๋ฌถ์ฌ์ dist ํด๋์ ์ ์ฅ์ด ๋๋ค๊ณ ์ฐฉ๊ฐํ๋ ๊ฒ์ด๋ค.
๋น๋ Outputs ๊ฒฝ๋ก
๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ ๊ฐ ์ํฌ์คํ์ด์ค์ dist ๋๋ ํ ๋ฆฌ์ ๊ฐ์ ์ ์ฅ๋๋ ๊ฒ์ด๋ค.
๋ชจ๋
ธ๋ ํฌ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ ๊ฐ๋ณ ์ํฌ์คํ์ด์ค๋ค์์ ์ฐ์ถ๋ ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ ํฌํจํ๊ณ ์์ง๋ ์๋ค. ๋ฃจํธ๋๋ ํ ๋ฆฌ๋ ์ ๋ฐ์ ์ธ ์ค์ ์ ์ํ ๋๋ ํ ๋ฆฌ์ด๊ณ , package.json์ ํตํด ์ ์ฒด ๋ชจ๋
ธ๋ ํฌ์ ์์กด์ฑ์ ๊ด๋ฆฌํ๋ค.
Build Outputs Location
/my-monorepo
/apps
/app1
/dist <-- Build outputs for app1
package.json
vite.config.js
/app2
/dist <-- Build outputs for app2
package.json
vite.config.js
/packages
/shared
package.json
turbo.json
package.json
ํฐ๋ณด๋ ํฌ Configuration
๊ทธ๋ผ ์์ `turbo.json` ํ์ผ์์ build ์ `outputs` ์ ์ค์ ํด์ค ์ฝ๋๊ฐ ํ๋ ์ญํ ์ ๋ฌด์์ผ๊น?
build ์คํ์ ์ ์ฒด ๋ชจ๋
ธ๋ ํฌ์์ ํด๋น dist ํ์ผ์ ์ฐพ์ Turborepo์๊ฒ ๊ด๋ จ ๋๋ ํ ๋ฆฌ์ ์๋ ํ์ผ์ ๋ชจ๋ ์บ์ฑ์ฒ๋ฆฌํ๊ณ , ์ต์ ํํ๋ผ๊ณ ๋ช
๋ นํ๋ ๊ฒ์ด๋ค.
์ฆ, ๋น๋์ ์ํฌ์คํ์ด์ค(ํจํค์ง, apps1, apps2…)์ dist ํ์ผ๋ค์ ์บ์ฑํด์ ๋ฐ๋๊ฒ ์์ผ๋ฉด .cache>turbo์ ์๋ก ์ ์ฅํ๊ณ , ๋ฐ๋๊ฒ ์์ผ๋ฉด ๊ทธ๋๋ก๋์ด์ ํฐ๋ณด๋ ํฌ ๋ด๋ถ์ ์ผ๋ก ์ฑ๋ฅ์ ์ต์ ํ์ํจ๋ค.
์ฐธ๊ณ
https://turbo.build/repo/docs/reference/configuration#pipeline
https://turbo.build/repo/docs/reference/configuration#outputs
https://turbo.build/repo/docs/core-concepts/caching/what-to-cache