Решение проблем·28 вопросов

Как устранить ошибку нехватки памяти JavaScript Heap Out of Memory при сборке фронтенд-проекта?

Ответ

Современные фронтенд-инструменты сборки, такие как Webpack или Vite, выполняют огромный объем работы по трансформации и минификации кода, что требует значительного количества оперативной памяти. По умолчанию среда выполнения Node.js имеет жесткие лимиты на максимальный объем используемой памяти для одного процесса, которые обычно составляют около полутора или двух гигабайт. При превышении этого порога процесс аварийно завершается с ошибкой исчерпания кучи.

Самым простым и быстрым решением данной проблемы является временное увеличение лимита памяти для Node.js перед запуском процесса сборки. Для этого в операционных системах Linux и macOS перед командой сборки можно указать переменную окружения NODE_OPTIONS со значением максимального объема памяти в мегабайтах. Например, команда node --max-old-space-size=4096 node_modules/.bin/webpack выделит процессу сборки четыре гигабайта оперативной памяти.

Если вы используете кроссплатформенную разработку, удобнее всего прописать эту настройку прямо в файле package.json в секции скриптов. Добавьте флаг ограничения памяти непосредственно в команду сборки, чтобы все разработчики команды и серверы непрерывной интеграции автоматически использовали увеличенный лимит памяти. Дополнительно рекомендуется регулярно обновлять зависимости проекта, так как новые версии сборщиков часто оптимизируют потребление ресурсов.

Полезен ли этот ответ?

Другие вопросы этой темы

Связанные вопросы из других тем