RE: Angular2 2.0.0, Angular-Cli v1.0.0-Beta.11-Webpack.8
Wie kann ich angular-cli anweisen, eine Datei aus "src / assets" beim Erstellen in das Stammverzeichnis von "dist" aufzunehmen?
Wir stellen auf einem Windows-Host bereit und müssen eine "web.config" -Datei einfügen, um IIS anzuweisen, alles an den Index weiterzuleiten. Wir haben dies vor RC4 gemacht, aber bei all den Aktualisierungen ist es durch die Risse gefallen (ich erinnere mich nicht, wie wir es gemacht haben).
Ich habe die GitHub-Repo-Dokumente durchsucht und in Bezug auf dieses Thema keine Verwendung gefunden. Vielleicht bin ich am falschen Ort?
Im Inhaltsverzeichnis gibt es einen Aufzählungspunkt "Hinzufügen zusätzlicher Dateien zum Build", aber es scheint, dass dieser Abschnitt nicht vorhanden ist.
quelle
"copy:webConfig": "node node_modules/copy/bin/cli.js web.config dist"
. Ich habe auch ein Post-Build-Skript hinzugefügt :"postbuild": "npm run copy:webConfig"
. Es gab andere Probleme beim Versuch, die Kopie zum Laufen zu bringen, aber dies hat den Trick getan.Antworten:
Die Eigenschaft "Assets" von angle-cli.json kann so konfiguriert werden, dass benutzerdefinierte Dateien in den Build des Angular-Cli-Webpacks aufgenommen werden. Konfigurieren Sie daher den Eigenschaftswert "Assets" als Array. Beispielsweise:
Die obige Konfiguration kopiert config.jsn und .htaccess während des Builds des Angular-Cli-Webpacks in den Ordner dist. Die obige Einstellung funktionierte in Angular-CLI-Version 1.0.0-Beta.18
quelle
Aktuelle richtige Antwort:
Das Team hat Unterstützung für das Kopieren bestimmter Dateien in den Ausgabeordner (
dist
standardmäßig) in einer späteren Version von Angular CLI hinzugefügt (wäre Beta 17 oder 19 - es ist seit Ewigkeiten in den endgültigen 1.x-Versionen enthalten).Sie fügen es einfach wie folgt zum Array hinzu
angular-cli.json
:(Beachten Sie, dass der Pfad relativ zum
src
Ordner ist.)Ich persönlich benutze es und es funktioniert gut.
Ab Beta 24 habe ich Angular CLI eine Funktion hinzugefügt , die sicherstellt, dass alleassets
Dateien und Ordner vom Webpack-Entwicklungsserver bereitgestellt werden, wenn sieng test
nicht nur ausgeführt werdenng serve
.Es unterstützt auch das Bereitstellen der Asset-Dateien auf dem Webpack-Entwicklungsserver, der für Unit-Tests verwendet wird (
ng test
).(Falls Sie einige JSON-Dateien für die Tests benötigen oder es einfach hassen, 404-Warnungen in der Konsole zu sehen).
Sie werden bereits bedient,
ng e2e
weil es voll läuftng serve
.Außerdem bietet es erweiterte Funktionen, z. B. das Filtern der gewünschten Dateien aus einem Ordner und das Unterscheiden des Namens des Ausgabeordners vom Quellordner:
Sie können sich auch auf die offizielle Dokumentation beziehen: Angular Guide - Workspace-Konfiguration .
.
[NUR FÜR ARCHIVIERUNG] Ursprüngliche Antwort (6. Oktober 2016):
Dies wird derzeit leider nicht unterstützt (ab Beta-16). Ich habe das Team genau über die Bedenken informiert (web.config-Dateien), aber es scheint nicht so bald zu geschehen (es sei denn, Sie geben die CLI usw.).
Befolgen Sie diese Ausgabe, um ausführliche Informationen und mögliche zukünftige Details zu erhalten.
PSFür die JSON-Datei können Sie sie einfügen
./src/assets/
. Dieser Ordner wird unverändert kopiert./dist/assets/
. Dies ist das aktuelle Verhalten.Früher in systemJS-Tagen gab es einen anderen
./public/
Ordner, in den./dist/
direkt kopiert wurde , aber dieser ist in Webpack-Versionen nicht mehr vorhanden, auf die in dem oben genannten Problem eingegangen wird.quelle
Eine Lösung (obwohl es meiner Meinung nach ein bisschen hackig ist) besteht darin, eine Variable in Ihrer
main.ts
Datei zu deklarieren , die die zusätzliche Datei erfordert, die Sie in die Webpack-Build-Ausgabe aufnehmen möchten.EX:
Wenn Webpack auf diese Variablendeklarationsanweisung stößt, gibt
main.ts
es die Rohdateiweb.config
als Teil der Build-Ausgabe aus:Eine ideale Lösung wäre die Webpack-Konfiguration, aber ich kann mir noch keine Gedanken darüber machen, wie die
angular-cli.json
Angular-Cli dies bis jetzt schafft (Beta.16).Wenn also jemand eine bessere Antwort hat, die die Webpack-Konfiguration für ein von Angular Cli generiertes Projekt erweitert, würde ich sie gerne hören.
quelle
Für Angular 8 Leser ,
.htaccess
muss seinsrc/.htaccess
. Siehe unten,Stellen Sie sicher, dass Sie die
.htaccess
Datei imsrc
Verzeichnis Ihres Projekts abgelegt haben .(Wenn Sie eine gültige
htaccess
Datei benötigen , finden Sie eine hier - https://stackoverflow.com/a/57126352/767625 )Das ist es. Dies sollte jetzt kopiert werden, wenn Sie drücken
ng build --prod=true
.Hoffe das hilft jemandem.
Prost,
quelle
angular.json
nicht dieangular-cli.json
in früheren Antworten erwähnte.In der Datei angle-cli.json befindet sich ein Abschnitt "Skripte". Dort können Sie alle Javascript-Dateien von Drittanbietern hinzufügen.
quelle
In meinem Fall habe ich Angular Version 5 verwendet . Daher habe ich versucht, eine Datei mit dem Namen Staticfile.txt zu erstellen, wenn ich den Befehl ng build --prod ausgeführt habe. Stellen Sie sicher, dass Sie die Dateierweiterung angeben, da sonst die Datei nicht erstellt wird.
quelle
Ändern Sie angle.json.
Eintrag zum Assets-Array hinzufügen:
quelle