1

I'm trying to get my application to run with the new RC7 of angular but i cant seem to be able to get it done, as the console shouts:

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

And when this somehow disappears, this pops up:

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

Looks like the implementation changed, and mine isn't updated although i npm installed everything from scratch, update my package.json as follows:

{
  "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: (I have also tried refering to unpkg.com for the packages, no success)

<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>

Any idea how to fix this?

Thanks in advance! :)

Kesem David
  • 2,135
  • 3
  • 27
  • 46

1 Answers1

2

NOTEs:

  • As per package.json, you are using Angular2.0.0 You don't need angular2-polyfills.js
  • Remove "angular2": "2.0.0-beta.17", from package.json
  • Remove angular2-polyfills.js from index.html

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

Infact, if you have angular2 folder under node_modules then delete that folder. latest angular2 packages will be available in @angular folder under node_modules.

micronyks
  • 54,797
  • 15
  • 112
  • 146
Sanket
  • 19,295
  • 10
  • 71
  • 82
  • You're basically saying i should remove the dependency of angular2 from my `package.json` and just re-`npm i`? (updated my `package.json` dependencies to those with -rc.7) – Kesem David Sep 17 '16 at 16:35
  • And the angular2 package doesn't seem to exist inside @angular under node_modules :| – Kesem David Sep 17 '16 at 16:37
  • Clean node_modules folder and then run `npm install` it will give you packages inside @angular under node_modules. – Sanket Sep 17 '16 at 16:38
  • Once you got latest packages, remove `angular2-polyfills.js` from `index.html` and then run application. – Sanket Sep 17 '16 at 16:39
  • Should i keep the `angular2` dependency in the package.json or not? – Kesem David Sep 17 '16 at 16:40
  • Remove `"angular2": "2.0.0-beta.17",` from package.json – Sanket Sep 17 '16 at 16:41
  • THANK YOU! that worked!!, please note in your answer to remove this dependency from my package.json and ill accept and upvote it for the future readers ! :) – Kesem David Sep 17 '16 at 16:41
  • 4
    @sanket This doesn't work for me. I'm already using angular 2.0.0 and I don't use any polyfills.js in my package.json nor index.html. So I'm not sure why I'm still getting "Reflect.getMetadata is not a function" error. – Sam Sep 17 '16 at 17:39
  • @Sam can you please create new post with your details – Sanket Sep 17 '16 at 17:41