我已经在Angular 8 Universal项目上工作了一个月。进行SSR构建一切正常,但是几天前,我不知道Webpack或Angular框架的这种奇怪行为,我不知道。
我收到错误消息:
65%的建筑464/465模块1个活动的p:\ web \ nodejs项目\ ng-express \ dist \ server.js
致命错误:接近堆限制分配的无效标记压缩失败-JavaScript堆内存不足
,我注意到dist / server.js文件大于... 50MB!有点奇怪。
我试图找到任何解决方案,但所有解决方案都只涉及构建而不是SSR构建:
node --max_old_space_size = 4096 ./node_modules/.bin/ng build --prod --aot
我需要执行:“ npm run build:ssr”命令,不可能在我的命令前添加“ node --max_old_space_size = 4096”命令。
说实话,为什么我完全收到此错误?如何解决?
任何帮助将不胜感激!
答案 0 :(得分:0)
至少对于我而言,最新的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版本来解决它