Команда разработчиков столкнулась с ошибками OOM при сборке приложения на Vue 3 и TypeScript на сервере с 3,8 GiB оперативной памяти. Процесс сборки на Vite потреблял избыточные ресурсы, что приводило к завершению работы Node.js системой Linux при параллельной работе Docker и базы данных.
Первичные меры включали изменение порядка сборки, ограничение параллелизма Terser до 1 в легаси-модулях и установку лимита кучи Node.js на уровне 1280 MiB. Ограничение памяти снизило пиковый RSS с 1,89 GiB до 1,46 GiB, однако время сборки увеличилось с 12 до 19 секунд.
Эксперименты с уменьшением количества модулей и удалением зависимостей, таких как ECharts, не дали значительного выигрыша в памяти без потери функциональности. Попытки оптимизации импортов и использование Vite 8 с движком Rolldown также не решили проблему нехватки ресурсов.
В качестве решения команда внедрила Rsbuild 2.2.13 на базе Rspack. Сравнительные тесты показали, что Rsbuild снизил пиковое потребление памяти на 52% и завершил сборку в 3,5 раза быстрее Vite. Пиковый RSS составил 1681 MiB для Vite и 802 MiB для Rsbuild.
После перехода на Rsbuild объем доступной памяти (MemAvailable) во время сборки увеличился с 201 MiB до 938 MiB. Замеры проводились с интервалом 100 мс для фиксации точных пиковых значений потребления ресурсов обоими сборщиками в идентичных условиях.






