Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Может использование ESBuild с Vite улучшить скорость трансформации


Может использование ESBuild с Vite улучшить скорость трансформации


Да, использование 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