概要
tsc -b(プロジェクト参照のビルド)とファイル監視(watch)まわりの改善。大規模なモノレポ(19,430 個の composite project、依存の深さ 124 段)では、tsc -b のビルドスケジューリングが参照の深さ優先順のままだと多くのビルダーがアイドルになってしまう問題があり、依存の深さ順にプロジェクトを割り当てるよう変更された。macOS の fsevents では、監視登録時のパスとコールバックで返るパスの形式が食い違うことでファイル変更イベントを取りこぼす問題があり、パスの正規化・比較方法を修正した。プロジェクト参照のビルドは、プログラム的 API の createBuildOrchestrator(TS 6 より前の SolutionBuilder に相当)からも実行・clean できるようになった。/app や /home/user/project のようにファイルシステムのルートに近い場所のプロジェクトで tsc --watch / tsc -b --watch が再ビルドしないリグレッション(7.0.2 にも該当)は修正され、TS_WATCH_DEBUG=1 で監視の判断を確認できる。
主な API・オプション
tsc -bの--verbose/--dry— 出力そのものは変更なし(内部のスケジューリング順序のみ変更)api.createBuildOrchestrator(rootFiles, options)— API からのビルド・clean(詳しくは プログラム的API)- 環境変数
TS_WATCH_DEBUG=1— watch が監視しない理由などを表示
変更履歴
- 2026-09-30 — ファイルシステムのルートに近いプロジェクトやファイルでも watch が再ビルドするように(#64366)⏳ 未リリース · 変更
- 2026-09-30 —
tspath.GetCommonParentsで結果が上書き・欠落する不具合を修正(#64493)⏳ 未リリース · 変更 - 2026-09-28 — プロジェクト参照のビルド・clean を API から行う
createBuildOrchestratorを追加(#64158)⏳ 未リリース · 変更 - 2026-09-24 — macOS の
fseventsのパス形式の不一致とDirWatchSetの正規化パス問題を修正し、ファイル監視の取りこぼしを解消(#64210)⏳ 未リリース · 変更 - 2026-09-24 —
tsc -bのビルドスケジューリングを依存の深さ順に変更し、大規模モノレポでのビルダーのアイドル時間を削減(#64220)⏳ 未リリース · 変更
関連
- リポジトリ: TypeScript