Monorepo Tool
Last updated
Last updated
ν¨ν€μ§ λ§€λμ μν¬μ€νμ΄μ€μ κΈ°λ₯λ€ μΈμ μ λ¬Έμ μΌλ‘ κ°λ°νκΈ° μν΄ νμν λꡬ λ° κΈ°λ₯λ€ (μλ, λΆμ, κ΄λ¦¬ μΈ‘λ©΄)
κ°λ° κ³Όμ μ€ μ¬λ¬ ν¨ν€μ§λ€μ μ¬μ©ν λ ν¨ν€μ§μ μ½λλ₯Ό κ·Έλ₯ μ¬μ©νλ κ²μ΄ μλ λΉλ κ³Όμ μ΄ νμνκΈ° λλ¬Έμ μ½λλ₯Ό μ€ννκΈ° μ λ§€λ² λΉλλ₯Ό ν΄μ£Όμ΄μΌνλ λ²κ±°λ‘μμ΄ μλ€.
λͺ¨λ Έλ¦¬ν¬ ν΄μ νμ©νλ€λ©΄, μ½λ λ³κ²½μ μ΄ μλ κ²½μ° μΊμ±λ λΉλ νμΌμ μ¬μ©νλ€κ±°λ μ΄λ° λ²κ±°λ‘μμ ν΄μν΄μ£Όλ λ§μ κΈ°λ₯λ€μ΄ ν¬ν¨λμ΄ μλ€.
리ν¬μ§ν 리 λ΄ μν¬μ€νμ΄μ€μ λν λΆμκ³Ό μκ°ν κΈ°λ₯μ νμ©νμ¬ μ 체μ μΈ μ°Έμ‘° μμ‘΄ κ΄κ³λ₯Ό νμ νκΈ° ν¨κ³Όμ
μ€μΌν΄λ©μ΄λ μ½λ 곡μ , ν¨ν€μ§ μ¬μ© μ ν λ±μ κ΄λ¦¬λ₯Ό μμμ μ΄ μλ λꡬλ€μ νμ©νλ©΄ νΈν¨
λͺ¨λ Έλ ν¬ λꡬλ₯Ό μ΄ν΄λ³΄λ©΄μ λͺ°λλ λͺ¨λ Έλ¦¬ν¬μ μ μ©ν κΈ°λ₯λ€μ νμ ν μ μλ€.
Local computation caching (λ‘컬 μΊμ±)
Lerna, Nx, Rush, Turborepo
νλ² μ€νλ κ²°κ³Όλ¬Ό(λΉλ)μ μΊμ±νμ¬ μΊμ±λ μμμ νμ©νλ κΈ°λ₯
Distribute computation caching (λΆμ° μΊμ±)
Lerna, Nx, Rush, Turborepo
κ°μ μ»΄ν¨ν°κ° μλ μ¬λ¬ μμ νκ²½μμ λμΌν μΊμ±λ λΉλ μμμ νμ©νλλ‘ νλ κΈ°λ₯
CI μμ ν λ μ€μ
Local task orchestration (λ‘컬 μμ μ€μΌμ€νΈλ μ΄μ )
Lerna, Nx, Rush, Turborepo
μ’ μμ± μ΄μλ‘ λΉλμ μμλ₯Ό μ μ΄ν΄μ μμ μ μμλ₯Ό λμ΄ν΄μΌ νλ€λ©΄ λ³λ ¬μ μΌλ‘ μ€νν μ μκ² λλ€.
μ’ μμ± μ΄μκ° μλ λΆλΆμ λ³λ ¬μ μΌλ‘ λΉλνλλ‘ μ€μ νλ κΈ°λ₯μ μ 곡
Distribute task execution (λΆμ° μμ )
Lerna, Nx
λ‘μ»¬μ΄ μλ λΆμ° νκ²½μμ μμ μ μ€ννλ κΈ°λ₯μ μ 곡
Detecting affected packages (λ³κ²½ κ°μ§)
Lerna, Nx, Rush, Turborepo
λ³κ²½ μ¬νμ μν₯μ λ°λ νλͺ©λ€λ§ κ²°μ ν μ μλ κΈ°λ₯μ μ 곡
νΉμ ν¨ν€μ§μ μ½λκ° μμ λλ©΄ ν΄λΉ μ½λμ μν₯μ λ°λ μ λ€λ§ λΉλ λλ ν μ€νΈλ₯Ό μ€νν μ μκ² λλ€.
Workspace analysis (μμ μμ κ°μ§ λ° λΆμ)
Lerna, Nx, Rush, Turborepo
λ³λμ μΆκ° μ€μ μμ΄ package.json
μ μ¬μ©ν΄μ μν¬μ€νμ΄μ€μ νλ‘μ νΈ κ·Έλνλ₯Ό λΆμν μ μλ κΈ°λ₯
Dependency graph visualization (μμ‘΄μ± κ·Έλν μκ°ν)
Nx, Turborepo
νλ‘μ νΈ ν¨ν€μ§μ μ’ μμ± κ΄κ³λ₯Ό μκ°ν ν΄μ£Όλ κΈ°λ₯
turborepoλ HTML λ¬Έμλ‘λ§ μ 곡νκ³ Nxλ κ²μ, νν°λ§ λ± μΈν°λ ν°λΈ κΈ°λ₯μ μΆκ°λ‘ μ 곡
Source code sharing (μμ€ μ½λ 곡μ )
Lerna, Nx, Rush, Turborepo
κ°λ³ μμ€ μ½λ μ‘°κ°μ μ½κ² 곡μ ν΄μ£Όλ κΈ°λ₯
κΈ°λ³Έμ NPM Packageλ§ κ³΅μ μ¬ν
Code generation (μ€μΌν΄λ©)
Nx
package.json
λ§ μλ€λ©΄ μ€μΌν΄λ©μ μμ±ν΄μ£Όλ κΈ°λ₯μ μ 곡
Consistent tooling (μΌκ΄λ λꡬ)
Nx
μΌκ΄λ λ°©μμΌλ‘ μ¬λ¬ λꡬλ€μ νμ©ν μ μλ κΈ°λ₯μ μ 곡
Project contraints and visibility (μ’ μμ± κ΄κ³ μ ν)
Nx, Rush,
리ν¬μ§ν 리 λ΄μ μ’ μμ± κ΄κ³λ₯Ό μ ννλ κ·μΉμ μ€μ