Angular 8-进行通用SSR构建时发生致命错误-接近堆限制的无效标记紧凑分配失败

我已经在Angular 8 Universal项目上工作了一个月。进行SSR构建一切正常,但是几天前,我不知道Webpack或Angular框架的这种奇怪行为,我不知道。

我收到错误消息:

65%的建筑464/465模块1个活动的p:\ web \ nodejs项目\ ng-express \ dist \ server.js


致命错误:接近堆限制分配的无效标记压缩失败-JavaScript堆内存不足

,我注意到dist / server.js文件大于... 50MB!有点奇怪。

Angular 8-进行通用SSR构建时发生致命错误-接近堆限制的无效标记紧凑分配失败

我试图找到任何解决方案,但所有解决方案都只涉及构建而不是SSR构建:

node --max_old_space_size = 4096 ./node_modules/.bin/ng build --prod --aot

我需要执行:“ npm run build:ssr”命令,不可能在我的命令前添加“ node --max_old_space_size = 4096”命令。

说实话,为什么我完全收到此错误?如何解决?

任何帮助将不胜感激!

gaosumei 回答:Angular 8-进行通用SSR构建时发生致命错误-接近堆限制的无效标记紧凑分配失败

至少对于我而言,最新的LTS节点版本已解决了此问题。您可以尝试更新到Node.js v12.13。

如果您不希望这样做,则应该知道webpack + angular +节点是导致此issue的原因。不过,您可以查看您的package.json

"build:ssr": "npm run build:client-and-server-bundles && npm run webpack:server","build:client-and-server-bundles": "ng build --prod && ng run angular.io-example:server","webpack:server": "webpack --config webpack.server.config.js --progress --colors"

如果这在您的package.json中,则应添加其他条目:

"ng-high-memory": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng","build:ssr:high-mem": "npm run ng-high-memory -- build --prod && npm run ng-high-memory -- run angular.io-example:server && npm run webpack:server"

然后您可以运行构建:

npm run build:ssr:high-mem

这还是未经测试的,所以我建议您只更新Node版本来解决它

本文链接:https://www.f2er.com/3104444.html

大家都在问