Antworten:
Sie können den Ausgabeordner in .angular-cli.json aktualisieren:
"outDir": "./location/toYour/dist"
Die aktuellere Methode besteht darin, die outDir
Eigenschaft in zu aktualisieren .angular-cli.json
.
Das ng build
Befehlsargument --output-path
(oder -op
kurz) wird ebenfalls weiterhin unterstützt. Dies kann hilfreich sein, wenn Sie mehrere Werte möchten. Sie können diese in Ihren package.json
als npm-Skripten speichern .
Achtung: Die
.angular-cli.json
Eigenschaft wird NICHT so aufgerufen,output-path
wie es die derzeit akzeptierte Antwort von @ cwill747 sagt. Das ist nur dasng build
Argument.Es heißt
outDir
wie oben erwähnt und befindet sich unter demapps
Grundstück.
.
(Dezember 2017)
1 Jahr nach dem Hinzufügen dieser Antwort fügte jemand eine neue Antwort mit im Wesentlichen denselben Informationen hinzu, und das Originalposter änderte die akzeptierte Antwort in die 1 Jahr verspätete Antwort, die dieselben Informationen in der ersten Zeile dieser Antwort enthielt.
Für Angular 6+ haben sich die Dinge ein wenig geändert.
Das Cli-Setup erfolgt jetzt in angle.json (ersetzt durch .angular-cli.json) in Ihrem Arbeitsbereich-Stammverzeichnis. Der Ausgabepfad in der Standardeinstellung angular.json sollte folgendermaßen aussehen (irrelevante Zeilen entfernt):
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"outputPath": "dist/my-app-name",
Dadurch wird Ihre App natürlich in WORKSPACE / dist / my-app-name generiert. Ändern Sie outputPath, wenn Sie ein anderes Verzeichnis bevorzugen.
Sie können den Ausgabepfad mithilfe von Befehlszeilenargumenten überschreiben (z. B. für CI-Jobs):
ng build -op dist/example
ng build --output-path=dist/example
Sa https://github.com/angular/angular-cli/wiki/build
Wenn Sie den Ausgabepfad festlegen, wird Angular mitgeteilt, wo die "kompilierten" Dateien abgelegt werden sollen. Wenn Sie jedoch den Ausgabepfad ändern, wird Angular beim Ausführen der App weiterhin davon ausgehen, dass die App im Dokumentstamm des Webservers gehostet wird.
Damit es in einem Unterverzeichnis funktioniert, müssen Sie die Basis-HREF festlegen.
In angle.json:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
Cli:
ng build --base-href=/my-folder/
Wenn Sie nicht wissen, wo die App zur Erstellungszeit gehostet wird, können Sie das Basistag in der generierten index.html ändern.
Hier ist ein Beispiel, wie wir es in unserem Docker-Container machen:
entrypoint.sh
if [ -n "${BASE_PATH}" ]
then
files=( $(find . -name "index.html") )
cp -n "${files[0]}" "${files[0]}.org"
cp "${files[0]}.org" "${files[0]}"
sed -i "s*<base href=\"/\">*<base href=\"${BASE_PATH}\">*g" "${files[0]}"
fi
Sie können die CLI auch wie folgt verwenden:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
Das einzige, was für mich funktioniert hat, war, mich outDir
sowohl in angular-cli.json
UND zu ändern src/tsconfig.json
.
Ich wollte meinen dist-Ordner außerhalb des eckigen Projektordners haben. Wenn ich die Einstellung nicht auch ändern src/tsconfig.json
würde, würde Angular CLI beim Erstellen des Projekts Warnungen auslösen.
Hier sind die wichtigsten Zeilen ...
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
Und ...
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
cli 7x
, das oben genannte ist in angular.json
und das Feld ist outputPath
( tsconfig
Anpassung oben bleibt gleich). Hth
Angular CLI verwendet dazu jetzt Umgebungsdateien.
Fügen Sie zunächst einen environments
Abschnitt zum hinzuangular-cli.json
Etwas wie :
{
"apps": [{
"environments": {
"prod": "environments/environment.prod.ts"
}
}]
}
Fügen Sie dann in der Umgebungsdatei ( environments/environment.prod.ts
in diesem Fall) Folgendes hinzu:
export const environment = {
production: true,
"output-path": "./whatever/dist/"
};
jetzt, wenn du rennst:
ng build --prod
Es wird in den ./whatever/dist/
Ordner ausgegeben .
angular-cli: 1.0.0-beta.21
für Github-Seiten, die ich benutze
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
Folgendes kopiert die Ausgabe in den Ordner docs: --output-path=docs
Eine andere Möglichkeit wäre, den Webroot-Pfad zum Winkelcli dist-Ordner festzulegen. Sagen Sie in Ihrer Program.cs bei der Konfiguration des WebHostBuilder einfach
.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")
oder was auch immer der Weg zu Ihrem dist dir ist.