我正在尝试将Angular 7应用的生产版本部署到Azure。运行ng build
时,我可以轻松地部署它,但是当尝试使用完整的ng build --prod
时,我在控制台下面收到此错误,并且该页面无法加载。在本地服务器上运行应用程序时也会发生这种情况。
Uncaught TypeError: Reflect.defineMetadata is not a function
我已经搜索过,但找不到该确切错误的参考。我看到大多数结果是这样的:Uncaught TypeError: Reflect.getMetadata is not a function
答案 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';