Я работаю над проектом с использованием webpack 3.12.0 с Angular 4.3.1. Приложение изначально было довольно большим, и из-за необходимых изменений оно увеличилось, и теперь я получаю эту ошибку:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of
memory
1: node_module_register
2: v8::internal::FatalProcessOutOfMemory
3: v8::internal::FatalProcessOutOfMemory
4: v8::internal::Factory::NewFillerObject
5: v8::internal::MemoryReducer::TearDown
Прежде всего, я заметил увеличение числа выходных данных webpack, когда я запускаю простую сборку без удаления и минимизации, что, как я предполагаю, является количеством модулей, скомпилированных webpack:
Как видите, мы перешли от 1829 (+1815 скрытых модулей) к 2279 (+2265 скрытых модулей).
Мой первый вопрос: что именно означает число 1829 (и 2279)?
Я попытался увеличить max_old_space_size, но это все равно не работает.
Какие-либо предложения ?
к сожалению, я не могу в связи с политикой компании. Все, что я могу сказать: разница между моим запуском npm и сценарием сборки заключается в том, что сборка запускает uglifyjs-webpack-плагин и babel-minify-webpack-плагин.
если вы не разглашаете информацию о компании, вы не нарушите правила. А без этого мы не можем увидеть, что идет не так.
вы можете использовать tenser-webpack-plugin и посмотреть, работает ли. На этом этапе babel-minify является избыточным.
Что ж, без конфига помочь вам будет практически невозможно. Удалите "конфиденциальные" части (я даже не знаю, как вы можете иметь конфиденциальную информацию в конфигурации веб-пакета) и опубликуйте их.





Я наконец нашел решение.
Причина, по которой приложение внезапно стало больше, - это импорт.
import { BehaviorSubject, Observable } from 'rxjs';
Изменено на:
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Observable } from 'rxjs/Observable';
Теперь приложение вернулось к своему прежнему размеру, и сборка не вызывает переполнения кучи.
Было ли это потому, что вы импортировали из rxjs в целом, а не из rxjs / ...?
Не могли бы вы поделиться своей конфигурацией веб-пакета?