Angular 7:ng serve 有效,但控制台显示 Zone.js 错误并且应用程序无法加载

red*_*r13 5 javascript zonejs angular angular7

背景故事:昨天我需要将我的应用程序从 Angular 5.2.9 更新到 6,所以我想“为什么不在我这样做的时候升级到 7”。所以当然这花了一整天的时间,并且需要对很多文件进行大量更改(主要是因为 Rxjs),但无论如何,到一天结束时,我能够做到ng serve并且编译时没有错误!

但是当我开始localhost:4200运行该应用程序时,它在“正在加载...”时停止,并在 DevTools 控制台中显示以下消息:

core.js:14016 Uncaught (in promise) Error: In this configuration Angular requires Zone.js
    at new NgZone (core.js:14016)
    at getNgZone (core.js:14701)
    at PlatformRef.push../node_modules/@angular/core/fesm5/core.js.PlatformRef.bootstrapModuleFactory (core.js:14599)
    at core.js:14643
Run Code Online (Sandbox Code Playgroud)

我试图确保我所有的包裹都是最新的。npm install给出了一些关于 fsevents 的错误,但是zone是最新的。

所以我现在不知所措。我不知道错误消息真正想告诉我什么,或者它是否合法。我做了ng new并检查了生成的文件,那里没有“zone.js setup”代码,所以我没有错过类似的东西。我觉得我离更新工作如此之近,但当然,如果应用程序无法运行,那就不好了!谷歌搜索此错误消息并没有发现任何有用的信息(无论如何对我来说)。

Mah*_*ahi 6

将 package.json 中的每个依赖项更新为最新

npm i -g npm-check-updates
ncu -u
npm install
Run Code Online (Sandbox Code Playgroud)

即使您收到此错误,错误也会消失。转到polyfill.ts并添加或取消注释:-

/****************************************************************************
 * Zone JS is required by default for Angular itself. */
import 'zone.js/dist/zone';  // Included with Angular CLI.


/**********************************************************************
Run Code Online (Sandbox Code Playgroud)