升级 Angular 7 到 8 时内存不足

3
在将 Angular 7 升级到 8 时,当我运行 ng update 命令进行 @angular/core 迁移时出现了 "Out of memory" 错误。
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

这并不是特别令人惊讶 - 当我运行ng build时,会出现内存不足的问题。解决办法是运行npm run build,它配置为node --max_old_space_size=10240 ./node_modules/@angular/cli/bin/ng build

所以,我的问题是如何配置迁移@angular/core包以使用更多内存?

更新:根据建议,我重新运行了更新。

node --max_old_space_size=10240 ./node_modules/.bin/ng update @angular/core --from 7 --to 8 --migrate-only

但是我遇到了一个错误:

basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
      ^^^^^^^

SyntaxError: missing ) after argument list

看起来这些引号是为 Linux 环境而设计的,在 Windows 上会出问题...

1个回答

4
请尝试执行此命令:node --max_old_space_size=10240 node_modules/.bin/ng update,如 GitHub 问题中所述。
更新:
看起来您也可以根据这篇文章中所解释的方式定制ng命令调用。
或者您可以升级Node到版本12,这应该会自动调整运行命令所需的内存。

这个链接非常相关 - 但我正在努力弄清楚在哪里放置这个命令?! - Felix
你能否将此命令用作npm run upgrade的配置?或者您对节点命令的要求有其他要求吗?您能否详细说明一下您计划如何运行升级?根据上面分享的GitHub问题中的评论,似乎“ng update”将在基于节点12及以上版本上自动调整内存配置。 - Rov
看起来你也可以像这篇文章中所解释的那样自定义ng命令调用。 - Rov
1
请查看我的更新到OP...我认为现在出现了Windows特定的问题。让我尝试升级到Node 12 - 您链接中的评论之一说它可能会解决问题。 - Felix
很高兴它起作用了,如果其他人遇到这个问题,我已经更新了答案。 - Rov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接