Можешь объяснить, что такое tree shaking в JavaScript и как бандлеры используют это для оптимизации финального бандла кода? — ДейлиПреп