Angular 需要 Zone.js polyfill。使用系统js我面临这个问题

Posted

技术标签:

【中文标题】Angular 需要 Zone.js polyfill。使用系统js我面临这个问题【英文标题】:Angular requires Zone.js polyfill. with system js i am facing this issue 【发布时间】:2018-07-28 23:46:23 【问题描述】:

当我使用 systemjs 和 ASP.NET MVC4 安装 angular4 时,我遇到了这个错误。 我试图通过注释代码来解决这个问题

"throw new error('Angular requires Zone.js prolyfill.')" 

在 node_modules/@angular/core/core.umd.js 中。但没有任何结果。

我的确切问题是。

未捕获(承诺)错误:Angular 需要 Zone.js prolyfill。 在新的 NgZone (core.umd.js:3805) 在 PlatformRef__._bootstrapModuleFactoryWithZone (core.umd.js:4524) 在评估(core.umd.js:4569) 在

如果有人知道如何解决此问题,请帮助我。

我在我的 cshtml 文件中使用的依赖项

<script src="~/node_modules/core-js/client/shim.min.js"></script>
<script src="~/node_modules/zone.js@0.8.4/dist/zone.js"></script>
<script src="~/node_modules/reflect-metadata/Reflect.js"></script>
<script src="~/node_modules/systemjs/dist/system.src.js"></script>

<script src="~/systemjs.config.js"></script>
<script>
    System.import('app').catch(function (err)
    
       console.error(err);
    );
</script>

【问题讨论】:

【参考方案1】:

使用来自node_modules 的版本号仔细检查该路径。它可能在文件结构中物理上不包含该版本号,并且未加载导致错误。直接验证,但是正确的路径应该如下:

<script src="~/node_modules/zone.js/dist/zone.js"></script>

如果您需要管理版本,您可以通过package.jsonnpm install 进行管理,如下所示:

"zone.js": "0.8.4"

【讨论】:

以上是关于Angular 需要 Zone.js polyfill。使用系统js我面临这个问题的主要内容,如果未能解决你的问题,请参考以下文章

Angular 7:ng serve 工作,但控制台显示 Zone.js 错误并且应用程序不会加载

angular2 zone.js 进行自动 sock.js 调用

在 Angular 5 中禁用 zone.js 后,ngOnInit 未触发

违规点击处理程序采用 angular 5 和 chrome zone.js [重复]

Angular ZoneJS 原理

angular2 脏检查series1-Zone.js