Почему esbuild собирает только указанный файл?

esbuild - это инструмент для сборки и транспиляции кода на TypeScript, JavaScript и других языках программирования. При использовании esbuild для сборки TypeScript проекта, он по умолчанию собирает только указанный файл.

Причина, по которой esbuild собирает только указанный файл, связана с его подходом к сборке. В отличие от других инструментов, таких как Webpack или Rollup, которые анализируют зависимости в проекте и создают граф зависимостей, esbuild предполагает, что каждый файл должен быть обработан отдельно. Такой подход к сборке позволяет esbuild работать очень быстро и эффективно.

Когда запускается esbuild, вы указываете в его конфигурации точку входа - файл, который будет являться начальной точкой для сборки и будет содержать весь исходный код, необходимый для вашего проекта. Esbuild начнет со сборки только этого файла. Он пройдет по всем зависимостям указанного файла и транспилирует их при необходимости. Однако он не будет анализировать и собирать другие файлы, которые не являются явными зависимостями от указанного файла. Поэтому, если в вашем проекте есть другие файлы, которые не используются непосредственно в файле точки входа, они не будут собраны.

Это означает, что вам нужно явно указать все файлы, необходимые для вашего проекта, в точке входа. Если у вас есть несколько точек входа, вы должны явно указать все необходимые файлы в каждой точке входа.

Такой подход может показаться неудобным, особенно если у вас большой проект с множеством файлов и зависимостей, и вы все равно предпочли бы автоматическую обработку зависимостей. В таком случае вы можете использовать инструменты, такие как Webpack или Rollup, которые предоставляют более сложный, но более гибкий подход к сборке и анализу зависимостей.

Однако, если вам нужна быстрая и простая сборка без обработки сложных зависимостей, esbuild может быть отличным выбором. Он имеет маленький размер и быстро работает, что делает его отличным инструментом для сборки небольших или средних проектов, где вы можете явно указать все необходимые файлы в точке входа.