Angular2无法更新到RC7 - zone.js&反映的元数据

时间:2016-09-17 16:22:55

标签: javascript angular zonejs reflect-metadata

我正在尝试让我的应用程序运行新的RC7角度,但我似乎无法完成它,因为控制台大喊:

Promise rejection: Zone.assertZonePatched is not a function      angular2-polyfills.js:489

以某种方式 消失时,会弹出:

Reflect.getMetadata is not a function (..)                                core.umd.js:472

看起来实施已更改,虽然我npm install从头开始编辑所有内容,但我的package.json更新如下:

{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "build": "webpack",
    "start": "webpack-dev-server",
    "typings": "typings",
    "postinstall": "typings install"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0-rc.7",
    "@angular/compiler": "2.0.0-rc.7",
    "@angular/core": "2.0.0-rc.7",
    "@angular/forms": "2.0.0-rc.7",
    "@angular/http": "2.0.0-rc.7",
    "@angular/platform-browser": "2.0.0-rc.7",
    "@angular/platform-browser-dynamic": "2.0.0-rc.7",
    "@angular/router": "3.0.0-rc.3",
    "@angular/upgrade": "2.0.0-rc.7",
    "core-js": "^2.4.1",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "^0.6.21",
    "angular2-in-memory-web-api": "0.0.19",
    "@ng-bootstrap/ng-bootstrap": "^1.0.0-alpha.3",
    "angular2": "2.0.0-beta.17",
    "angular2-apollo": "^0.4.6",
    "apollo-client": "^0.4.13",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.35.1",
    "moment": "^2.14.1",
    "source-map-loader": "^0.1.5"
  },
  "devDependencies": {
    "ts-loader": "^0.8.2"
  }
}

index.html :(我也尝试过引用unpkg.com来获取软件包,但没有成功)

<html>

  <head>
    <title>My App</title>

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/css/bootstrap.min.css"
          integrity="sha384-MIwDKRSSImVFAZCVLtU0LMDdON6KVCrZHyVQQj6e8wIEJkW4tvwqXrbMIya1vriY" crossorigin="anonymous">
    <link rel="stylesheet" href="style.css">

    <!-- 1. Load libraries -->
    <!-- IE required polyfills, in this exact order -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>

    <script src="https://www.atlasestateagents.co.uk/javascript/tether.min.js"></script>
    <script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/js/bootstrap.min.js"
            integrity="sha384-ux8v3A6CPtOTqOzMKiuo3d/DomGaaClxFYdCu2HPMBEkf6x2xiDyJ7gkXU0MWwaD" crossorigin="anonymous"></script>

    <script src="node_modules/core-js/client/shim.min.js"></script>
    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/reflect-metadata/Reflect.js"></script>
  </head>

  <!-- 3. Display the application -->
  <body>
    <my-app>Loading...</my-app>
  </body>

  <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
  <script src="dist/bundle.js"></script>
</html>

知道如何解决这个问题吗?

提前致谢! :)

1 个答案:

答案 0 :(得分:2)

注意

  • 根据package.json,您使用 Angular2.0.0 您不需要 angular2-polyfills.js
  • 包中删除 &#34; angular2&#34;:&#34; 2.0.0-beta.17&#34; 上传.json
  • index.html

    中删除 angular2-polyfills.js
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    

事实上,如果 node_modules 下有 angular2 文件夹,则删除该文件夹。最新的angular2软件包将在 @angular 文件夹的 node_modules 下提供。