Jetzt, da Angular2 nicht mehr in der Betaversion ist (2.0.0-RC.0 und RC.1 kam gestern/3. Mai 2016 heraus), ist Angular 2 für die Verwendung mit NPM unter dem neuen @angular Namespace gepackt. Viele Pakete wurden verschoben und müssen jetzt einzeln installiert werden, wie Sie in der Angular2 CHANGELOG sehen können.Wo ist eckig2-Polyfills jetzt, dass nicht-Beta-Angular 2 als @angular verpackt ist?
Aber eine Sache, die der CHANGELOG nicht adressiert, ist, wie man das angular2-polyfills
Bündel findet, das vorher verfügbar war.
Mein Beta-Code dies in einem seiner Typoskript Dateien genannt:
import 'angular2/bundles/angular2-polyfills';
Was muss ich jetzt tun, dass die gleiche Funktionalität mit dem neuen Paket Layout zu bekommen?
Hier ist die ventdor.ts
Datei, die den polyfills importieren verwendet, so dass es durch webpack aufgenommen werden könnte:
require('./css/bootstrap.css');
require('./css/main.css');
import 'angular2/bundles/angular2-polyfills'; // THIS NO LONGER WORKS
require('./lib/bootstrap/bootstrap.js');
Das Fehlen des polyfills verursacht Fehler wie die folgenden, wenn ich meine Anwendung mit webpack bauen:
ERROR in /Users/mfo/Projects/PennMutual/angular2-oauth2/node_modules/@angular/core/src/facade/async.d.ts
(28,45): error TS2304: Cannot find name 'Promise'.
ERROR in /Users/mfo/Projects/PennMutual/angular2-oauth2/node_modules/@angular/core/src/facade/lang.d.ts
(4,17): error TS2304: Cannot find name 'Map'.
ERROR in /Users/mfo/Projects/PennMutual/angular2-oauth2/node_modules/@angular/core/src/facade/lang.d.ts
(5,17): error TS2304: Cannot find name 'Set'.
Zumindest in der Webpack-Welt gibt es mehr als das. Ich kann es nicht einfach in index.html einfügen, weil diese Dateien dort nicht verfügbar sind. Webpack fasst alles in ein paar Dateien zusammen, in diesem Fall Vendor.js. Dateien werden nur aufgenommen, wenn sie in eine der Top-Level-Dateien importiert oder in eine Datei importiert werden, die intern in eine Top-Level-Datei importiert wird (geringfügige Vereinfachung). –
Ja, Sie haben Recht bezüglich des Webpacks. Ich denke, dass Sie die Abhängigkeiten von zonejs und reflect-metadata anstelle von angular2-polyfill importieren müssen. Tut mir leid, ich weiß nicht wirklich, wie man das Webpack konfiguriert ... –