如何在生产构建后识别 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
我已经发布了一些类似的其他项目,但没有遇到过此类问题。
如果您知道错误发生在哪个页面 - 请按照以下步骤操作:
- 导航到
angular.json
并将 sourceMap
设置为 true
- 导航至 tsconfig.json 并启用
fullTemplateTypeCheck
- 运行
ng build --prod --aot
(这里aot很重要,编译的时候可能会发现这个错误)
- 如果没有错误,上一步用你的构建创建了文件夹,可能 "dist"
- 使用一些库到 运行 "dist" 文件夹。在我的例子中,我使用
http-server
。
运行 命令 http-server ./dist
- 导航到错误所在的页面。现在应该显示的更清楚了。
在我将项目从 Angular 7.3.* 更新到 Angular 8 和 运行 之后,以下构建命令
node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng build --prod
我能够成功部署它。
注意:我还必须在 angular.json 中设置最大预算。
我在 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
我已经发布了一些类似的其他项目,但没有遇到过此类问题。
如果您知道错误发生在哪个页面 - 请按照以下步骤操作:
- 导航到
angular.json
并将sourceMap
设置为 true - 导航至 tsconfig.json 并启用
fullTemplateTypeCheck
- 运行
ng build --prod --aot
(这里aot很重要,编译的时候可能会发现这个错误) - 如果没有错误,上一步用你的构建创建了文件夹,可能 "dist"
- 使用一些库到 运行 "dist" 文件夹。在我的例子中,我使用
http-server
。
运行 命令http-server ./dist
- 导航到错误所在的页面。现在应该显示的更清楚了。
在我将项目从 Angular 7.3.* 更新到 Angular 8 和 运行 之后,以下构建命令
node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng build --prod
我能够成功部署它。
注意:我还必须在 angular.json 中设置最大预算。