У меня есть машина для сборки ОЗУ 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
Ошибки при нехватке памяти
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",
Извините за глупый вопрос, но не могли бы вы запустить свою команду с --max_old_space_size = 4096?
Справедливо, но не знаю, как его использовать. Webpack утверждает, что Unknown argument: max_old_space_size. Обновил вопрос с моей версией webpack и webpack-cli. Следует отметить, что webpack-cli - это то, что не распознает параметр
Это моя команда сборки, которую я использую для производственной сборки в webpack версии 4.20.2 "node --max_old_space_size = 4096 ./node_modules/webpack/bin/webpack.js -p --progress --colors --display-error-details"
В качестве грязного и быстрого решения вы можете создать раздел подкачки файл вместо раздела подкачки. Это замедлит работу и пожертвует местом для хранения, но, по крайней мере, ваша система не выйдет из строя.
Установка max_old_space_size в командной строке имеет тот же эффект, что и установка его как env var (с ошибкой в моем описании выше)





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