Превышен максимальный размер стека вызовов в Angular 9 ng build --prod для библиотеки

У меня есть библиотека, которую я могу скомпилировать с помощью Angular 9. Но если я изменю флаг на --prod, что практически делает "enableIvy": false, я получаю

[ошибка] RangeError: превышен максимальный размер стека вызовов

в Object.pathIsRelative (... \ node_modules \ typescript \ lib \ typescript.js: 5778: 34)

в tryLoadModuleUsingPathsIfElhibited (... \ node_modules \ typescript \ lib \ typescript.js: 28346: 37)

в tryLoadModuleUsingOptionalResolutionSettings (... \ node_modules \ typescript \ lib \ typescript.js: 28334: 24)

в tryResolve (... \ node_modules \ typescript \ lib \ typescript.js: 28479: 28)

в ... \ node_modules \ typescript \ lib \ typescript.js: 28471: 69

в Object.forEach (... \ node_modules \ typescript \ lib \ typescript.js: 309: 30)

в nodeModuleNameResolverWorker (... \ node_modules \ typescript \ lib \ typescript.js: 28471: 25)

в nodeModuleNameResolver (... \ node_modules \ typescript \ lib \ typescript.js: 28464: 16)

в Object.resolveModuleName (... \ node_modules \ typescript \ lib \ typescript.js: 28238: 30)

в CompilerHostAdapter.getMetadataFor (... \ node_modules @ angular \ compiler-cli \ src \ metadata \ bundler.js: 567: 37)

Я представил консольное сообщение отладки в функции function tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state), и это похоже на цикл примерно с 20 moduleName с. Я должен упомянуть, что у меня НЕТ предупреждений о циклической зависимости, если я компилирую без флага --prod.

Обновление. Я исправил циклические зависимости, и у меня больше нет предупреждений сортировки.


person Adrian Ber    schedule 07.07.2020    source источник
comment
попробуйте разрешить круговую зависимость (если речь идет о внедрении) этого SO: stackoverflow.com/questions/46832072/ или это stackoverflow.com/questions/58749172/ Итак (речь идет о модулях изменений) может вам помочь   -  person Eliseo    schedule 07.07.2020
comment
@Eliseo Я исправил циклические зависимости в своем проекте, но все равно получаю ту же ошибку.   -  person Adrian Ber    schedule 10.07.2020
comment
@AdrianBer, вам удалось решить эту проблему?   -  person Sobvan    schedule 19.11.2020


Ответы (4)


В конце концов, aber rm -rf node_modules Мне также нужно было сделать npm cache clean --force - также я удостоверился, что у меня действительно обновлены все зависимости. (Не уверен, что из этого помогло)

person LuJaks    schedule 21.01.2021

Столкнулся с той же проблемой, в моем случае был index.ts с недопустимым экспортом

export * from './'

Исправлено и снова построено с помощью ng build

person alydemah    schedule 08.03.2021

У меня была такая же проблема с angular 12.1.1, у меня не было циклических зависимостей, решением было изменить "enableIvy: false" на "compilationMode": "partial".

См. angular docs.

person Sh Svyatoslav    schedule 14.07.2021

Попробуйте удалить ненужный импорт, если что-то вроде этого:

Модуль 'A' импортирует модуль 'B' и наоборот

person Salahuddin Ahmed    schedule 14.07.2021