Да, использование ESBUILD с VITE может значительно улучшить скорости трансформации по сравнению с использованием других пакетов, таких как WebPack. Вот несколько ключевых моментов:
предварительно связанные зависимости с Esbuild
Vite использует Esbuild для зависимостей до брунка, что примерно в 20-30x быстрее, чем использование компилятора TypeScript (TSC) напрямую [3]. Этот шаг предварительного сжигания преобразует модули CommonJS/UMD в ESM и улучшает холодное время запуска VITE по сравнению с пакетами на основе JavaScript [1].
Более быстрое преобразование типографии
Vite использует пользовательский анализатор типографии Esbuild, который оптимизирован для производительности. Это позволяет избежать некоторых ударов скорости в официальном компиляторе TypeScript, таких как тяжелое использование форм мегаморфных объектов и ненужных динамических доступа к свойствам [3].
Эмпирические измерения производительности
Тесты показывают, что Vite с Esbuild может быть намного быстрее, чем WebPack для определенных операций [2]:
- Начальная `пряжа старта на сборку: Vite 6s против Webpack 150s
- React Component Hot Reload: Vite 1s против Webpack 13s
- Изменение данных сервера «Горячая» перезагрузка: Vite 13S против Webpack 17S
Хотя точный прирост производительности будет зависеть от проекта, общая тенденция показывает значительное ускорение от использования ESBuild для преобразования в VITE по сравнению с такими альтернативами, как WebPack [2].
Тем не менее, важно отметить, что Esbuild не выполняет проверку типов, поэтому вам может потребоваться запустить `tsc -noemit` отдельно, чтобы обеспечить безопасность полного типа [4]. Некоторые функции, такие как «const enum», также еще не поддерживаются Esbuild [4].
Таким образом, использование быстрого преобразования Esbuild является ключевым фактором в преимуществах производительности VITE по сравнению с другими бундлерами. Ускорение скорости может быть существенным, особенно во время разработки, но есть и некоторые компромиссы, которые также следует учитывать.
Цитаты:[1] https://vitejs.dev/guide/features
[2] https://dev.to/noriste/migrate-a-150k-loc-codebase-to-vite-and-esbuild-how-part-2-3-1C08
[3] https://esbuild.github.io/faq/
[4] https://github.com/vitejs/vite/issues/1585
[5] https://github.com/vitejs/vite/issues/3193