Winkel-4 ng dienen --prod vs ng dienen
Kurz, ich habe eine app, die 4.6 MB ng dienen.
Wenn ich das mache:
ng dienen --prod
Bekomm ich 1MB Dateigröße.
Jedoch, die --prod irgendwie machen meine gesamte Anwendung brechen.
Mein ganzes Dienstleistungen (verspricht basiert), die senden Sie eine Anfrage an den server funktioniert nicht mehr.
Den bizzar Sache ist, dass einfach ng dienen funktioniert einwandfrei UND bestimmte Teile ng dienen --prod funktioniert auch gut, solange es keine server-Anfrage.
Ich nicht erlaubt, beliebigen code da ng dienen version funktioniert ok.
Die wichtigste Frage ist:
Warum bekomme ich Hut Art von Verhalten?
Außerdem, irgendwann, die app basiert auf ng dienen --prod plötzlich voll gearbeitet, aus dem nichts und dann, nachdem ich neu gestartet, die app, mal wieder eine gebrochen-app.
EDIT: mehr EXPLIZITE details:
Bin ich mit Fiddler, um sicherzustellen, dass alle Angaben korrekt sind:
Wie Sie sehen können, details sind ok.
Nun für den code verantwortlich zu simulieren, dass die Anfrage auf der client-Seite:
login(uName: string, pw: string, type: number): Promise<any> {
return new Promise(resolve => {
if (type === 1) {
const options = new RequestOptions({ headers: this.headers });
const body = JSON.stringify({ username: uName, password: pw });
this.http.post(this.loginUrl, body, options)
.toPromise()
.then(response => {
resolve(response);
})
.catch(this.handleError);
} else if (type === 2 || type === 3) {
this.http.post(this.loginUrl, { username: uName, token: pw })
.toPromise()
.then(response => {
resolve(response);
})
.catch(this.handleError);
}
});
}
Nun feststellen, wie alles funktioniert perfekt, wenn ich ng dienen nur (Registerkarte Netzwerk):
Wie Sie sehen können, bin ich bereits angemeldet und ich bekomme eine Antwort.
Nun,
Dem moment, als ich tun
ng dienen --prod
Plötzlich die gleichen login-Anfrage mit den gleichen Daten funktioniert nicht mehr:
Dies ist super bizzar.
Alle meine Methoden, die verantwortlich für die server-Anfragen sind alle gleich.
"Bad Request" mit einigen Fehler-code kommt vom server selbst (meine eigenen server-code wie "E-Mail nicht ausgefüllt sind", die auch bizzar da ich ja senden Sie die korrekten Parameter)
- Haben Sie vergleichen das webpack config-Dateien für die Produktion und Entwicklung?
- Ich wusste, dass ich etwas vergessen. @AmanArora - ich bin mit Winkel-CLI
- Was sind die Fehler, die Sie erhalten, wenn die Navigation/abrufen von Daten?
- Hallo Deborah, ich habe gerade editiert meinen post mit mehr Infos.
Du musst angemeldet sein, um einen Kommentar abzugeben.
--prod
ist die Möglichkeit, bauen, standardmäßig ist der debug-ModusLassen Sie uns sehen, ein Beispiel, weshalb die Anwendung bricht, sehen wir code wie diesen:
vorstellen, toshow ist nicht für die Komponente definiert sind oder durch einen Fehler haben wir eine typo sagen
toShow
zutoshow
.In diesem Fall
ng build
undng serve
funktionieren wird, aberng build --prod
undng serve --prod
geben Fehlerwenn du hast
ng serve --prod
Winkel-cli eine Produktion aufzubauen mit Baum schütteln und AOT (Ahead Of Time) - KompilierungHeißt es Baum schütteln Sie alle Komponenten, und Hinzugefügt, die eigentlich schon in Ihrem code verwendet, nicht alle. Das ist, wie Sie sehen, die vendor.js ist wirklich etwas wenn du das getan hast
ng serve
Lesen Sie im detail in der cli-Dokumentation, die bauen was tut.
Wir auch vor ähnlichen Problem, und befestigte Sie die folgenden Hinweise beachten. Das Problem ist AOT nicht unterstützt einige Funktionen, die JIT unterstützt. Bitte überprüfen Sie diesen link. hoffentlich wird es dir helfen.
https://github.com/rangle/angular-2-aot-sandbox
Winkel-DOC Über AOT Einschränkungen