怪异的 ng build 错误

在项目上遇到一个怪异问题,本地打包正常的项目,在服务器上跑 CI 任务的时候就报错,报错的具体信息如下:

An unhandled exception occurred: Cannot read property ‘Workspace’ of undefined

网上搜索比较难找到有效解决办法,而且关于造成这个问题的原因也并没有很合理的解释。于是尝试在服务器上手工执行各种命令。偶然发现,在运行 npm install 的时候,有报 Node 可分配的堆栈大小不够。

于是调整分配给 Node 的大小为 3G(据说默认是 1g):

export NODE_OPTIONS=”–max-old-space-size=3072″

再然后运行 npm install 以及 ng build 打包,都正常。切换为 CI job也运行正常。问题解决。