未捕获的TypeError:Reflect.defineMetadata不是Angular 7 Production Build上的函数

时间:2018-12-15 08:45:07

标签: angular metadata typeerror production

我正在尝试将Angular 7应用的生产版本部署到Azure。运行ng build时,我可以轻松地部署它,但是当尝试使用完整的ng build --prod时,我在控制台下面收到此错误,并且该页面无法加载。在本地服务器上运行应用程序时也会发生这种情况。

Uncaught TypeError: Reflect.defineMetadata is not a function

enter image description here

我已经搜索过,但找不到该确切错误的参考。我看到大多数结果是这样的:Uncaught TypeError: Reflect.getMetadata is not a function

2 个答案:

答案 0 :(得分:3)

确保已安装reflect-metadata。另外,尝试将此行添加到您的polyfills.ts文件中:

import 'reflect-metadata'

OR

import 'core-js/es7/reflect';

理想情况下,此(第二个import语句)已经是polyfills.ts文件的一部分。

那应该使它工作。

答案 1 :(得分:2)

polyfills.ts 中的导入不再包含在默认的 Angular 项目中,因为 Angular 仅在开发环境中需要它。

如果你需要 polyfill,例如对于像 class-transformer 这样的模块,你可以将它添加到 polyfills.ts:

npm i core-js -S

import 'core-js/proposals/reflect-metadata';