Kesem David Kesem David - 2 months ago 157
Javascript Question

Angular2 Failing to update to RC7 - zone.js & reflect-metadata

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 install
ed 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! :)

Answer

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.