代码之家  ›  专栏  ›  技术社区  ›  redOctober13

Angular 7:ng serve正常工作,但控制台显示Zone.js错误,应用程序无法加载

  •  0
  • redOctober13  · 技术社区  · 6 年前

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

    但是当我去 localhost:4200

    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
    

    我已经尽力确保我所有的包裹都是最新的。 npm install zone 是最新的。

    所以我现在不知所措。我不知道错误消息到底想告诉我什么,或者它是否合法。我做的 ng new 谷歌搜索这个错误消息并没有发现任何有用的东西(无论如何对我来说)。

    1 回复  |  直到 6 年前
        1
  •  6
  •   Mahi    6 年前

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

    npm i -g npm-check-updates
    ncu -u
    npm install
    

    polyfill.ts 和添加或取消注释:-

    /****************************************************************************
     * Zone JS is required by default for Angular itself. */
    import 'zone.js/dist/zone';  // Included with Angular CLI.
    
    
    /**********************************************************************
    
        2
  •  0
  •   Lisa    3 年前

    我的应用程序也发生了同样的事情,但在不同的上下文中,我在django应用程序中添加了angular构建文件,包含的脚本标记顺序不正确,因此在运行“python manage.py runserver”时,浏览器抛出了类似“在此配置中angular requires Zone.js”的错误。因此,在尝试以下修复后,它得到了修复:

    首先,订单应该是

    • runtime.js
    • polyfills.js
    • main.js

    由于angular生成es5和es2015构建文件,因此es5构建文件的脚本标记必须包含“nomodule defer”作为属性,而es2015必须包含“type=”text/javascript“”。下面的屏幕截图来自我的Django应用程序的'index.html',我在其中添加了angular构建文件。 enter image description here