Açısal 6'da `` servis '' ile ortam nasıl ayarlanır


169

Açısal 5.2 uygulamamı Açısal 6'ya güncellemeye çalışıyorum. Açısal güncelleme kılavuzundaki talimatları (v6'ya güncelleme dahil) başarıyla izledim angular-clive şimdi uygulamayı üzerinden sunmaya çalışıyorum

ng serve --env=local

Ama bu bana hata veriyor:

Bilinmeyen seçenek: '--env'

Birden çok ortam ( dev/local/prod) kullanıyorum ve bu Angular 5.2'de çalışma biçimiydi. Açısal 6'da ortamı nasıl ayarlayabilirim?


1
onun v6, angular-clitüm uygulama ile birlikte güncelleme , bu yüzden onun açık olduğunu düşündüm:]
Martin Adámek

5
Çok yardımcı, Martin. paylaştığınız görüşleriniz için teşekkürler. Aslında en azından belli değil.
Maxxx

Yanıtlar:


304

Yeni configurationseçeneği kullanmanız gerekir (bu ng buildve ng servebunun için de işe yarar )

ng serve --configuration=local

veya

ng serve -c local

angular.jsonDosyanıza bakarsanız, her yapılandırma (aot, optimizer, ortam dosyaları, ...) için ayarlar üzerinde daha iyi kontrole sahip olduğunuzu göreceksiniz.

"configurations": {
  "production": {
    "optimization": true,
    "outputHashing": "all",
    "sourceMap": false,
    "extractCss": true,
    "namedChunks": false,
    "aot": true,
    "extractLicenses": true,
    "vendorChunk": false,
    "buildOptimizer": true,
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.prod.ts"
      }
    ]
  }
}

Buradan daha fazla bilgi alabilirsinizOrtama özgü yapılandırmaları yönetmek için .

Aşağıdaki diğer yanıtta belirtildiği gibi, yeni bir 'ortam' eklemeniz gerekiyorsa, oluşturma görevine ve ihtiyaçlarınıza bağlı olarak sunum ve test görevlerine de yeni bir yapılandırma eklemeniz gerekir .

Yeni bir ortam ekleme

Düzenle : Netleştirmek için, dosya değiştirmelerin buildbölümde belirtilmesi gerekir . Kullanmak istediğiniz Yani eğer ng servebelirli olan environmentdosyaya (diyelim dev2 ), değiştirmek birinci ihtiyaç buildbölüm yeni eklemek için dev2 yapılandırmasını

"build": {
   "configurations": {
        "dev2": {

          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.dev2.ts"
            }
            /* You can add all other options here, such as aot, optimization, ... */
          ],
          "serviceWorker": true
        },

Ardından serveyeni bir yapılandırma eklemek için bölümünüzü değiştirin ve yeni beyan ettiğiniz dev2 build yapılandırmasını işaret edin

"serve":
      "configurations": {
        "dev2": {
          "browserTarget": "projectName:build:dev2"
        }

Sonra ng serve -c dev2dev2 yapılandırma dosyasını kullanacak olan


Yapılandırmalara base-href eklemenin mümkün olup olmadığını biliyor musunuz? ya da sadece inşa - c evreleme --base-href = / yyy /
Eduardo Tolino

@EduardoTolino: Evet yapabilirsin, bir baseHrefseçenek var
David

Geliştirici ortamı için uzaktan hata ayıklama bağlantı noktasını nerede belirleyebilirim? Hata ayıklamak için VSCode. In Angular 6tabii ki. Böylece ng servekomut, Chrometarayıcıyı başlatırken uzaktan hata ayıklayıcı bağlantı noktasını içerir .
Stephane

bilgi bağlantısı güncellendi: github.com/angular/angular-cli/wiki/…
Mateo Tibaquira

1
hizmet -c yerel "ng hizmet" ile karşılaştırıldığında uygulamayı derlemek için zaman ayırın
Vignesh

46

Bu cevap iyi görünüyor.
ancak bu
Configuration 'xyz' could not be found in project ...
, derleme hatasıyla sonuçlandığı için beni bir hataya götürür .
Yalnızca güncellenmiş derleme yapılandırmaları için değil, aynı zamanda bunlara da hizmet verir .

Yani sadece karışıklık bırakmamak için:

  1. --env içinde desteklenmiyor angular 6
  2. --envdeğişti --configuration|| -c(ve şimdi daha güçlü)
  3. çeşitli ortamları yönetmek için, yeni ortam dosyası eklemeye ek olarak, şimdi angular.jsondosyada bazı değişiklikler yapmak gerekiyor :
    • build { ... "build": "configurations": ... özelliğine yeni yapılandırma ekle
    • yeni derleme yapılandırması yalnızca bir fileReplacementsparça içerebilir (ancak daha fazla seçenek mevcuttur)
    • serve { ... "serve": "configurations": ... özelliğine yeni yapılandırma ekle
    • Yeni yapılandırma hizmet arasında içerecektirbrowserTarget="your-project-name:build:staging"

8

Deneyebilirsin: ng serve --configuration=dev/prod

Kullanım oluşturmak için: ng build --prod --configuration=dev

Umarım farklı bir ortam kullanıyorsunuzdur.


serv - configuration = dev / prod komutu, serv nedeniyle karşılaştırıldığında zaman alır?
Vignesh

ng --configuration = prod, dosya minimizasyonu ve üretime hazır kod nedeniyle servis --configuration = prod'den daha uzun sürer.
amku91

Tamam "ng serve --configuration = dev" komutunu kullanırsam onun da daha fazla zaman aldığı anlamına gelir
Vignesh

Hayır, daha fazla zaman almamalı. Ürün ortamı, kodu üretim için küçültmek, çirkinleştirmek ve optimize etmek için ek adımlara sahiptir. Bu ek adımları açıkça etkinleştirmediğiniz sürece, diğer ortamlar normal süreyi almalıdır.
Reginaldo Camargo Ribeiro

6

Açısal 2-5 için makaleye bakın çoklu ortam

Açısal 6 kullanım için ng serve --configuration=dev

Not: Açısal 6 için de aynı makaleye bakın. Ama nerede bulursanız olun --envkullanın --configuration. Açısal 6 için iyi çalışır.


2

Komutu ng serve -c devgeliştirme ortamı için kullanabilirsinizng serve -c prodÜretim ortamı

aynı zamanda bina için de geçerlidir. ng build -c devDev build için kullanabilirsiniz


2

Açısal artık desteklemiyor - bunun yerine

ng serve -c dev

kalkınma ortamı için,

ng serve -c prod 

prodüksiyon için.

NOT: -cveya--configuration


Bu sene önce soruldu ve cevaplandı, ayrıca cevabınız yanlış, -c(tek tire ile) veya --configuration(çift çizgi ile).
Martin Adámek

0

Açısal 6 oluşturmak için bu komutu kullanın

ng build --prod --configuration=dev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.