Uncaught TypeError: Reflect.defineMetadata is not a function on Angular 7 Production Build
Uncaught TypeError: Reflect.defineMetadata is not a function on Angular 7 Production Build
我正在尝试将我的 Angular 7 应用程序的生产版本部署到 Azure。我可以在 运行 ng build
时轻松部署它,但是当我尝试完整 ng build --prod
时,我在控制台下方收到此错误并且页面未加载。当 运行 应用程序也在本地主机服务器上时也会发生这种情况。
Uncaught TypeError: Reflect.defineMetadata is not a function
我已经搜索过,但找不到对这个确切错误的引用。我看到大多数结果都是这样的:Uncaught TypeError: Reflect.getMetadata is not a function
确保您已安装 reflect-metadata
。也可以尝试将此行添加到您的 polyfills.ts
文件中:
import 'reflect-metadata'
或
import 'core-js/es7/reflect';
理想情况下,这个(第二个 import
语句)已经是 polyfills.ts
文件的一部分。
这应该会起作用。
polyfills.ts 中的导入不再包含在默认的 Angular 项目中,因为 Angular 仅在开发环境中需要它。
如果你需要 polyfill,例如对于 class-transformer
这样的模块,您可以将其添加到 polyfills.ts:
npm i core-js -S
import 'core-js/proposals/reflect-metadata';
不要安装整个 core-js,可以安装
npm i reflect-metadata
然后只需导入 polyfills.js
import 'reflect-metadata';
在这种情况下,您不需要安装整个 core-js,因为只需要 reflect-metadata。 :)
我正在尝试将我的 Angular 7 应用程序的生产版本部署到 Azure。我可以在 运行 ng build
时轻松部署它,但是当我尝试完整 ng build --prod
时,我在控制台下方收到此错误并且页面未加载。当 运行 应用程序也在本地主机服务器上时也会发生这种情况。
Uncaught TypeError: Reflect.defineMetadata is not a function
我已经搜索过,但找不到对这个确切错误的引用。我看到大多数结果都是这样的:Uncaught TypeError: Reflect.getMetadata is not a function
确保您已安装 reflect-metadata
。也可以尝试将此行添加到您的 polyfills.ts
文件中:
import 'reflect-metadata'
或
import 'core-js/es7/reflect';
理想情况下,这个(第二个 import
语句)已经是 polyfills.ts
文件的一部分。
这应该会起作用。
polyfills.ts 中的导入不再包含在默认的 Angular 项目中,因为 Angular 仅在开发环境中需要它。
如果你需要 polyfill,例如对于 class-transformer
这样的模块,您可以将其添加到 polyfills.ts:
npm i core-js -S
import 'core-js/proposals/reflect-metadata';
不要安装整个 core-js,可以安装
npm i reflect-metadata
然后只需导入 polyfills.js
import 'reflect-metadata';
在这种情况下,您不需要安装整个 core-js,因为只需要 reflect-metadata。 :)