如何在生产构建后识别 Angular 给出的以下问题?

How to identify the following problem given by Angular after production build?

我在 Angular 中有一个大型项目,在生产构建 (ng b --prod) 和部署之后,它显示了一个白页和以下错误:

Uncaught TypeError: Object prototype may only be an Object or null: undefined
    at setPrototypeOf (<anonymous>)
    at i (main.5a0de34ba4bae8cec104.js:1)
    at main.5a0de34ba4bae8cec104.js:1
    at Module.zUnb (main.5a0de34ba4bae8cec104.js:1)
    at f (runtime.26209474bfa8dc87a77c.js:1)
    at Object.1 (main.5a0de34ba4bae8cec104.js:1)
    at f (runtime.26209474bfa8dc87a77c.js:1)
    at t (runtime.26209474bfa8dc87a77c.js:1)
    at Array.r [as push] (runtime.26209474bfa8dc87a77c.js:1)
    at main.5a0de34ba4bae8cec104.js:1

我已经发布了一些类似的其他项目,但没有遇到过此类问题。

如果您知道错误发生在哪个页面 - 请按照以下步骤操作:

  1. 导航到 angular.json 并将 sourceMap 设置为 true
  2. 导航至 tsconfig.json 并启用 fullTemplateTypeCheck
  3. 运行 ng build --prod --aot(这里aot很重要,编译的时候可能会发现这个错误)
  4. 如果没有错误,上一步用你的构建创建了文件夹,可能 "dist"
  5. 使用一些库到 运行 "dist" 文件夹。在我的例子中,我使用 http-server
    运行 命令 http-server ./dist
  6. 导航到错误所在的页面。现在应该显示的更清楚了。

在我将项目从 Angular 7.3.* 更新到 Angular 8 和 运行 之后,以下构建命令

node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng build --prod 

我能够成功部署它。

注意:我还必须在 angular.json 中设置最大预算。