Yanıtlar:
Çıktı klasörünü .angular-cli.json içinde güncelleyebilirsiniz:
"outDir": "./location/toYour/dist"
Bunun daha güncel yolu, outDir
mülkü içinde güncellemektir .angular-cli.json
.
ng build
Komut argümanı --output-path
(veya -op
Birden çok değer istediğinizde yararlı olabilir hala da desteklenmektedir kısaca), sizin onları kaydedebilirsiniz package.json
olarak npm komut.
Dikkat:
.angular-cli.json
özellik olarak adlandırılan DEĞİLDİRoutput-path
gibi @ cwill747 tarafından şu anda kabul gören yanıt diyor. Bung build
sadece argüman.
outDir
Yukarıda belirtildiği gibi denir ve birapps
mülkün altında .
.
(Aralık 2017)
Bu yanıtı ekledikten 1 yıl sonra , birisi temelde aynı bilgileri içeren yeni bir yanıt ekledi ve Orijinal Poster, kabul edilen yanıtı, bunun ilk satırında aynı bilgileri içeren 1 yıl geç yanıt olarak değiştirdi.
Angular 6+ için işler biraz değişti.
Cli kurulumu artık yapılır angular.json çalışma alanı kök dizininde (yerini .angular-cli.json). Default angular.json'daki çıktı yolu şöyle görünmelidir (alakasız satırlar kaldırıldı):
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"outputPath": "dist/my-app-name",
Açıkçası, bu uygulamanızı WORKSPACE / dist / my-app-name içinde oluşturacaktır. Başka bir dizini tercih ediyorsanız outputPath'i değiştirin.
Komut satırı argümanlarını kullanarak çıktı yolunun üzerine yazabilirsiniz (örneğin CI işleri için):
ng build -op dist/example
ng build --output-path=dist/example
Sa https://github.com/angular/angular-cli/wiki/build
Çıktı yolunu ayarlamak, "derlenmiş" dosyaların nereye yerleştirileceğini açısal olarak söyleyecektir, ancak uygulamayı çalıştırırken çıktı yolunu değiştirseniz de, açısal, uygulamanın web sunucusunun belge kök dizininde barındırıldığını varsayacaktır.
Bir alt dizinde çalışmasını sağlamak için temel href ayarlamanız gerekir.
Angular.json'da:
{
"projects": {
"my-app-name": {
"architect": {
"options": {
"baseHref": "/my-folder/",
cli:
ng build --base-href=/my-folder/
Derleme zamanında uygulamanın nerede barındırılacağını bilmiyorsanız, oluşturulan index.html'de temel etiketi değiştirebilirsiniz.
Docker konteynerimizde bunu nasıl yaptığımıza bir örnek:
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
CLI'yi de şu şekilde kullanabilirsiniz:
ng build -prod --output-path=production
# or
ng serve --output-path=devroot
Benim için işe yarayan tek şey outDir
hem angular-cli.json
AND'de değişiklik yapmaktı src/tsconfig.json
.
Dağıtım klasörümün açısal proje klasörünün dışında olmasını istedim. Ayarı da değiştirmezsem src/tsconfig.json
, Angular CLI projeyi her inşa ettiğimde uyarılar atardı.
İşte en önemli satırlar ...
// angular-cli.json
{
...
"apps": [
{
"outDir": "../dist",
...
}
],
...
}
Ve ...
// tsconfig.json
{
"compilerOptions": {
"outDir": "../../dist/out-tsc",
...
}
}
cli 7x
, içinde yapılır angular.json
ve alan outputPath
( tsconfig
yukarıdaki ayarlama aynı kalır). Hth
Angular CLI artık bunu yapmak için ortam dosyalarını kullanıyor.
Önce, bir environments
bölüm ekleyinangular-cli.json
Gibi bir şey :
{
"apps": [{
"environments": {
"prod": "environments/environment.prod.ts"
}
}]
}
Ve sonra ortam dosyasının içine ( environments/environment.prod.ts
bu durumda), şuna benzer bir şey ekleyin:
export const environment = {
production: true,
"output-path": "./whatever/dist/"
};
şimdi koştuğunda:
ng build --prod
./whatever/dist/
klasöre çıktı verecektir .
angular-cli: 1.0.0-beta.21
Kullandığım github sayfaları için
ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs
Bu, çıktıyı docs klasörüne kopyalayan şeydir: --output-path=docs
Diğer bir seçenek, webroot yolunu açısal cli dist klasörüne ayarlamak olabilir. Program.cs dosyanızda WebHostBuilder'ı yapılandırırken şunu söyleyin:
.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")
veya uzak dizinize giden yol ne olursa olsun.