Webpack не хватает памяти

Сценарий

У меня есть машина для сборки ОЗУ 500 МБ, и я хочу использовать ее для создания пакета JavaScript с помощью webpack.

NODE_ENV=production webpack --config webpack.prod.js

Раньше это работало нормально, но по мере того, как проект разрастался, мне не хватало памяти. Я попытался установить верхний предел для узла, надеясь, что webpack сделает что-то умное, но нет.

NODE_OPTIONS = "--max-old-space-size=2048" NODE_ENV=production webpack --config webpack.prod.js

Ограничения

  • Для меня не важно время, необходимое для сборки. Если нам нужно использовать SSD для сборки, это нормально.
  • Это Linux-бокс, но подкачки у меня нет.
  • Я рад альтернативным решениям в моей архитектуре, в настоящее время я вывожу один единственный JS-объект размером 1,6 МБ для своего SPA.

Ошибки

Ошибки при нехватке памяти

FATAL ERROR: NewSpace::Rebalance Allocation failed - process out of memory

Ошибка при добавлении ограничения для узла

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

Любая помощь или рекомендации приветствуются. Спасибо!

Обновлено: дополнительная информация

"webpack": "4.6.0",
"webpack-cli": "2.0.15",

Ошибка FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

Andrei Cioara 01.11.2018 21:15

Извините за глупый вопрос, но не могли бы вы запустить свою команду с --max_old_space_size = 4096?

anvk 02.11.2018 04:15

Справедливо, но не знаю, как его использовать. Webpack утверждает, что Unknown argument: max_old_space_size. Обновил вопрос с моей версией webpack и webpack-cli. Следует отметить, что webpack-cli - это то, что не распознает параметр

Andrei Cioara 02.11.2018 08:09

Это моя команда сборки, которую я использую для производственной сборки в webpack версии 4.20.2 "node --max_old_space_size = 4096 ./node_modules/webpack/bin/webpack.js -p --progress --colors --display-error-details"

anvk 02.11.2018 14:21

В качестве грязного и быстрого решения вы можете создать раздел подкачки файл вместо раздела подкачки. Это замедлит работу и пожертвует местом для хранения, но, по крайней мере, ваша система не выйдет из строя.

lependu 02.11.2018 15:13

Установка max_old_space_size в командной строке имеет тот же эффект, что и установка его как env var (с ошибкой в ​​моем описании выше)

Andrei Cioara 03.11.2018 12:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
6
7 191
1

Ответы 1

Пробный режим: 'none' в конфигурации вашего веб-пакета. Очевидно, эти «оптимизации» работают не так, как должны. Это было для меня решением после многих часов проб и ошибок.

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