Shrinking Azure Pipeline task extensions using esbuild
Jul 10, 2026David Paquette

Summary
This post details the implementation of esbuild to bundle Azure Pipelines task extensions, reducing package size from tens of megabytes and thousands of files to three files per task. This optimization resulted in a ~17x faster download and extract time per task (from ~4.5s to ~0.25s) and a ~98% reduction in downloads taking longer than 10 seconds. It also addresses two potential issues: deduplicating stateful shared modules and fixing sibling-asset paths when bundling multiple tasks. The post provides a checklist for publishers to adopt this optimization.