Як усунути помилку нестачі пам'яті 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 у секції скриптів. Додайте флаг обмеження пам'яті безпосередньо в команду збирання, щоб усі розробники команди та сервери безперервної інтеграції автоматично використовували збільшений ліміт пам'яті. Додатково рекомендується регулярно оновлювати залежності проєкту, оскільки нові версії збирачів часто оптимізують споживання ресурсів.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем