2017-06-16 4 views
-1

in einem Winkel/CLI/Typoskript 2.3 app bauen ng, habe ich einen Code, die Fehler vom Typ ausspuckt:Sehen Fehler erst nach

TypeError: Cannot assign to read only property 'myValue' of object '#'

Und es ist wahrscheinlich ein Versuch, eine Eigenschaft eines mutieren Objekt mit einem const deklariert. Die Ursache des Problems ist nicht mein Punkt hier.

Mein Punkt und Frage ist, dass ich sie erst nach ng build aber nicht, wenn lokal ausführen zu sehen. Wie kann ich sie während ng serve sichtbar machen?

bearbeiten

Es sieht aus, als ob die 'use scrict' in den eingebauten Code injiziert wurde, aber nicht der Lauf von Webpack während ng serve.

Zitiert dieses blog post comment

const foo = 27; 
// Any of the following uncommented lines throws an exception. 
// Assignment operators: 
foo = 42; 

aber dies wird:

'use strict'; // <<<<<<<<<<<<<<---------------------!!!!!!!!!!!!!!!! 
const foo = 27; 
// Any of the following uncommented lines throws an exception. 
// Assignment operators: 
foo = 42; 
+0

'ng serve' erstellt die App und startet auch einen Webserver. Also, was auch immer Fehler Sie auf "ng build" bekommen, sollten Sie auf "ng serve" sehen. – OysterMaker

+0

Das habe ich mir gedacht. Aber anscheinend ist es nicht der Fall. – user776686

+0

Welchen Befehl genau führen Sie aus? 'ng bauen --prod'? – developer033

Antwort

0

Ich nehme an, Sie ng build --prod verwenden wie in den Kommentaren von @developer033 erwähnt.

Production (AOT) Zusammenstellung und Nicht-Produktionszusammenstellung sind zwei verschiedene Dinge. Prod Flag ist "strenger".

Sie können einen Blick auf, bei der/Don'ts der Produktionscode tun von diesem Link: https://github.com/rangle/angular-2-aot-sandbox

Und Ihre Frage einfach zu beantworten, wie die Fehler von ng build --prod mit ng serve erkennen: Sie können es nicht. Vielleicht, wenn Sie Ihre Linters mit AoT-Einstellungen einrichten, kann Ihre IDE Ihnen sagen, was und was nicht zu tun ist.

+0

Also, wenn ich 'ng serve --aot' betreibe, wird es nicht ein guter Preflight Test sein? (Danke für den Sandbox Link - eine wirklich nützliche Ressource) – user776686

+0

@ user776686 ja aber 'ng serve --aot' und' ng build --aot' nehmen die gleiche Zeit, um die App zu booten. Was ich meine ist "ng serve" und "ng serve --aot" sind verschiedene Dinge. Und um sicherzustellen, dass Ihre App im Aot-Modus korrekt ausgeführt wird, müssen Sie die Option "--aot" verwenden. – echonax

+0

Ja, mein Ziel war es, Fehler zu sehen * bevor * ich auf einem Server bereitstellen. – user776686

Verwandte Themen