<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Monorepo on Commentary of Takao</title><link>https://takao.blog/en/tags/monorepo/</link><description>Recent content in Monorepo on Commentary of Takao</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Commentary of Takao</copyright><lastBuildDate>Sat, 13 Jun 2026 23:11:50 +0900</lastBuildDate><atom:link href="https://takao.blog/en/tags/monorepo/index.xml" rel="self" type="application/rss+xml"/><item><title>Monorepo Management with Turborepo: Scaling Development</title><link>https://takao.blog/en/web/monorepo-turborepo/</link><pubDate>Tue, 24 Sep 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/monorepo-turborepo/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post Monorepo Management with Turborepo: Scaling Development" /&gt;&lt;h2 id="introduction"&gt;Introduction
&lt;/h2&gt;&lt;p&gt;As JavaScript monorepos grow, build times spiral, CI pipelines saturate, and developer productivity drops. Turborepo, created by Vercel, addresses these challenges with intelligent caching and parallel task execution. Unlike Lerna or Nx, Turborepo focuses on being a task runner rather than a build tool, delegating compilation to tools like esbuild, webpack, and tsc.&lt;/p&gt;
&lt;h2 id="core-architecture--the-cache-system"&gt;Core Architecture — The Cache System
&lt;/h2&gt;&lt;p&gt;Turborepo&amp;rsquo;s cache is its defining feature. Cache keys are computed from file contents, environment variables, and dependency graphs. The cache lives in &lt;code&gt;node_modules/.cache/turbo&lt;/code&gt; as tar.gz archives, and the cache hit/miss lifecycle determines whether a task executes or skips.&lt;/p&gt;</description></item><item><title>TypeScript Project References: Scaling Large Codebases</title><link>https://takao.blog/en/web/typescript-project-references/</link><pubDate>Tue, 13 Aug 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/typescript-project-references/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post TypeScript Project References: Scaling Large Codebases" /&gt;&lt;h2 id="introduction"&gt;Introduction
&lt;/h2&gt;&lt;p&gt;As TypeScript codebases grow, the monolithic &lt;code&gt;tsconfig.json&lt;/code&gt; approach breaks down. Every invocation of &lt;code&gt;tsc&lt;/code&gt; type-checks and emits the entire project — a process that can take minutes even with &lt;code&gt;--noEmit&lt;/code&gt; in large monorepos. Worse, without module boundaries, any file can import any other file, creating tangled dependency graphs that are difficult to refactor. &lt;strong&gt;TypeScript Project References&lt;/strong&gt; solve this by allowing you to split your codebase into independent sub-projects, each with its own &lt;code&gt;tsconfig.json&lt;/code&gt;, enabling incremental builds, enforced API boundaries, and dramatically faster type-checking.&lt;/p&gt;</description></item></channel></rss>