1

我试图让我的应用程序使用新的 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>

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

提前致谢!:)

4

1 回答 1

2

注意事项

  • 根据 package.json,您使用的是Angular2.0.0您不需要angular2-polyfills.js
  • package.json中删除"angular2": "2.0.0-beta.17"
  • index.html中删除angular2-polyfills.js

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

事实上,如果您在 node_modules 下有angular2文件夹,删除该文件夹。最新的 angular2 包将在node_modules下的 @angular 文件夹中可用

于 2016-09-17T16:27:57.107 回答