Odpowiedzi:
Możesz zaktualizować folder wyjściowy w .angular-cli.json:
"outDir": "./location/toYour/dist"
Bardziej aktualnym sposobem jest aktualizacja outDir
właściwości w .angular-cli.json
.
ng build
Argumentem polecenia --output-path
(lub -op
w skrócie) jest nadal obsługiwana również, co może być przydatne, jeśli chcesz wiele wartości, można zapisać je w package.json
jak skrypty KMP.
Uwaga:
.angular-cli.json
nieruchomość nie nazywaoutput-path
jak aktualnie akceptowanych odpowiedzi przez @ cwill747 mówi. Tong build
tylko argument.Nazywa się,
outDir
jak wspomniano powyżej, i znajduje się podapps
własnością.
.
(Grudzień 2017)
Rok po dodaniu tej odpowiedzi ktoś dodał nową odpowiedź z zasadniczo tymi samymi informacjami, a oryginalny plakat zmienił zaakceptowaną odpowiedź na odpowiedź spóźnioną o rok, zawierającą te same informacje w pierwszym wierszu tej odpowiedzi.
W Angular 6+ trochę się zmieniło.
Konfiguracja Cli jest teraz wykonywana w angular.json (zastąpiona .angular-cli.json) w katalogu głównym obszaru roboczego. Ścieżka wyjściowa w domyślnym angular.json powinna wyglądać następująco (usunięto nieistotne wiersze):
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"outputPath": "dist/my-app-name",
Oczywiście wygeneruje to twoją aplikację w WORKSPACE / dist / my-app-name. Zmodyfikuj outputPath, jeśli wolisz inny katalog.
Możesz nadpisać ścieżkę wyjściową za pomocą argumentów wiersza poleceń (np. Dla zadań CI):
ng build -op dist/example
ng build --output-path=dist/example
Sa https://github.com/angular/angular-cli/wiki/build
Ustawienie ścieżki wyjściowej powie kątowi, gdzie umieścić „skompilowane” pliki, ale jednak zmienisz ścieżkę wyjściową, podczas uruchamiania aplikacji angular nadal zakłada, że aplikacja jest hostowana w katalogu głównym dokumentów serwera WWW.
Aby działało w podkatalogu, musisz ustawić podstawowy href.
W angular.json:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
Cli:
ng build --base-href=/my-folder/
Jeśli nie wiesz, gdzie aplikacja będzie hostowana w czasie kompilacji, możesz zmienić tag podstawowy w wygenerowanym pliku index.html.
Oto przykład, jak robimy to w naszym kontenerze docker:
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
Możesz także użyć CLI, na przykład:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
Jedyną rzeczą, która działała dla mnie, była zmiana outDir
w obu angular-cli.json
ANDsrc/tsconfig.json
.
Chciałem, aby mój folder dist był poza folderem projektu kątowego. Jeśli nie zmieniłem ustawienia wsrc/tsconfig.json
, Angular CLI wyrzuciłby ostrzeżenia za każdym razem, gdy buduję projekt.
Oto najważniejsze kwestie ...
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
I ...
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
cli 7x
, powyższe jest wykonane w angular.json
i pole jest outputPath
( tsconfig
regulacja powyżej pozostaje taka sama). Hth
Angular CLI używa teraz do tego plików środowiska.
Najpierw dodaj environments
sekcję doangular-cli.json
Coś jak :
{
"apps": [{
"environments": {
"prod": "environments/environment.prod.ts"
}
}]
}
A następnie wewnątrz pliku środowiska ( environments/environment.prod.ts
w tym przypadku) dodaj coś takiego:
export const environment = {
production: true,
"output-path": "./whatever/dist/"
};
teraz kiedy biegasz:
ng build --prod
wyjdzie do ./whatever/dist/
folderu.
angular-cli: 1.0.0-beta.21
dla stron github, których używam
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
Oto, co kopiuje dane wyjściowe do folderu dokumentów: --output-path=docs
Inną opcją byłoby ustawienie ścieżki webroot do folderu angular cli dist. W swoim Program.cs podczas konfigurowania WebHostBuilder po prostu powiedz
.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")
lub jakakolwiek jest ścieżka do twojego dist dir.