2016-06-01 12 views
10

(I auf dem Planeten Angular2 ist neu (emigrierte Planeten
Flex/Actionscript vom Sterben, so wenden Sie sich bitte diese naive Frage vergeben)
angular-cli "ng build" erzeugt kein Arbeitsprojekt?

Habe ich nach dem "ng build" läuft einen fatalen Fehler gemacht in der Annahme, dass Befehl auf meinem Projekt von Angular CLi, würde ich am Ende mit einem funktionierenden Projekt im Verzeichnis "dist" - die ich einfach in einem Browser ausführen konnte, auf einem Server?

Ich am Ende mit einem Ordner voll von richtig Named stuff usw. Gibt es einen Schritt, der mir hier fehlt?

enter image description here

+1

Sie sind kein Missverständnis. Sie sollten in der Lage sein, den Inhalt des 'dist'-Ordners in Ihren Webserver Ihrer Wahl zu deponieren und eine funktionierende Site zu haben. –

+0

Wenn Sie den Entwicklungsserver hochfahren möchten, um die Site lokal auszuführen, sollten Sie 'ng serve' anstelle von' ng build' verwenden. –

+0

Ich habe nicht alles in 'index.html' angeschaut, aber ich schätze, es wird einfach nicht einfach aus dem Dateisystem geladen, ja, Sie brauchen einen Server für die Produktionsanwendung. –

Antwort

35

ich Winkel sind neu, und liefen in das gleiche Problem. Sie können die Index.html-Datei im Browser direkt aus dem Dateisystem öffnen und ausführen, aber Sie haben den Pfad des Basis href Attributs in Index.html aus bearbeiten:

<base href="/"> 

zu:

<base href="./"> 
+1

Müssen wir diese behalten oder löschen, wenn wir sie auf einem echten Server bereitstellen? Wahrscheinlich sollte es zu angular 2 bemerkt werden. Entwicklerteam – realtebo

+0

Könnte es sein, dass dieser "Bug" nur auf einem Linux-System existiert? Ich versuche nur, Fehler zu beheben. – Blauhirn

+0

Neueste macOSsierra System zu dieser Zeit. Dies hat es für mich in localhost: 4200 und Live-Produktionsserver (Apache) behoben. Diese Antwort beendete meine sehr lange Suche. Vielen Dank!!! Auch @realtebo stimme ich völlig zu, sollte dies zum eckigen Cli-Dev-Team gebracht werden! – totallytotallyamazing

0

Sie müssen dies in der CLI auszuführen:

# This will create a production version in "dist" folder 
ng build -prod 

# This will create a production version in a custom folder 
ng build -prod --output-path=custom 
4

Ich dachte, ich würde meine Antwort von einer ähnlichen Frage überkreuzen. Original Post.
Ich glaube nicht, dass das OP ein Duplikat ist, also hier;


Sie können das gewünschte Ergebnis mit der folgenden cmd Winkel-cli Befehl erreichen:

ng build --base-href /myUrl/

ng build --bh /myUrl/ oder ng build --prod --bh /myUrl/

Dadurch ändert sich die <base href="/"> zu <base href="/myUrl/"> in der einzigen gebaut Version was perfekt für unseren Wandel in der Umgebung zwischen Entwicklung und Produktion war. Der beste Teil war, dass keine Codebasis mit dieser Methode geändert werden muss.


Zusammenfassend lassen Sie Ihre index.html Base href als: <base href="/"> dann laufen ng build --bh ./ in Winkel-CLI, um es einen relativen Pfad zu machen, oder ersetzen Sie die ./ mit was immer Sie benötigen.

This ist die offizielle angular-cli Dokumentation zur Verwendung.

Verwandte Themen