Yapılandırma dosyasında ng sunumu için varsayılan ana bilgisayar ve bağlantı noktasını ayarlama


166

Yazmak zorunda kalmamak için bir yapılandırma dosyasında bir ana bilgisayar ve bir bağlantı noktası ayarlayıp ayarlayamayacağımı bilmek istiyorum

ng serve --host foo.bar --port 80

sadece yerine

ng serve

Yanıtlar:


233

Açısal CLI 6+

Açısal son sürümünde, bu ayarlanır yapılandırma dosyası . Misal:angular.json

{
    "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
    "projects": {
        "my-project": {
            "architect": {
                "serve": {
                    "options": {
                        "port": 4444
                    }
                }
            }
        }
    }
}

Değerleri görüntülemek / düzenlemek için de kullanabilirsinizng config :

ng config projects["my-project"].architect["serve"].options {port:4444}

Açısal CLI <6

Önceki sürümlerde, bu öğenin altına ayarlanmıştıangular-cli.jsondefaults :

{
  "defaults": {
    "serve": {
      "port": 4444,
      "host": "10.1.2.3"
    }
  }
}

7
İşleri kolaylaştırmak 0.0.0.0için ana bilgisayar ipi yerine tüm Ethernet cihazlarında dinlemeyi belirtebilirsiniz . Bu şekilde hem yerel ana bilgisayar hem de genel ip adresi kullanılabilir.
dman

VS2017, garip bir nedenden dolayı bağlantı noktası ayarını yok sayıyor gibi görünüyor, ancak bu numarayı en azından uzak bağlantıları etkinleştirmek için @ dman'ın ekiyle (host olarak 0.0.0.0) kullandım.
Ola Berntsson

4
Görünüşe göre CLI'nin son sürümlerinde işler değişti (sürüm 6 kullanıyorum). Daha fazla ayrıntı için buraya bakın .
Nathan Friend

Bu yapılandırma ortamını özel yapmanın bir yolu var mı?
Pankaj

71

Şu an itibariyle bu özellik desteklenmiyor, ancak bu sizi rahatsız eden bir şeyse paketinizde bir alternatif olacaktır. Json ...

"scripts": {
  "start": "ng serve --host foo.bar --port 80"
}

Bu şekilde npm start

Bunu birden fazla projede yapmak istiyorsanız başka bir seçenek de ngserve, yukarıdaki komutunuzu yürütecek olan potansiyel olarak adlandırabileceğiniz bir takma ad oluşturmaktır .


üzgünüm, foo.bar, ne için bakın? GÜNCELLEME: onu kaldırdım ve çalışıyor, ama bilmiyorum.
Muhammed Moussa

32

Varsayılan HTTP bağlantı noktasını ve LiveReload sunucusu tarafından kullanılan bağlantı noktasını iki komut satırı seçeneğiyle yapılandırabilirsiniz:

ng serve --host 0.0.0.0 --port 4201 --live-reload-port 49153

https://github.com/angular/angular-cli


29

Bu, en son Açısal CLI'da değişti.

Dosya adı olarak değiştirildi angular.jsonve yapı da değişti.

Yapmanız gerekenler:

"projects": {
    "project-name": {
        ...
        "architect": {
            "serve": {
                "options": {
                  "host": "foo.bar",
                  "port": 80
                }
            }
        }
        ...
    }
}

1
@ Açısal / cli sürüm 6.1.5
PHEDev

1
@ Açısal / cli sürüm 7.0.6
Kerry Jones

16

Başka bir seçenek, ng servekomutla --portseçeneği çalıştırmaktır.

ng serve --port 5050 (örn. bağlantı noktası 5050 için)

Alternatif olarak: komutu ng serve --port 0otomatik olarak kullanılabilir bir bağlantı noktası atayacaktır.


--port 0 Biraz güzel bilgi oldu ama emin o soru cevaplar değilim.
Kül

Kullanmak için mevcut bağlantı noktasını otomatik olarak atayan --port 0 seçeneğini beğendim ...
vinsinraw

Soru özellikle bir yapılandırma dosyasında nasıl ayarlanacağını sorar
Ojonugwa Jude Ochalifu 19:19

11

Açısal'da varsayılan bağlantı noktası numarasını değiştirmenin iki yolu var.

İlk yol CLI komutudur:

ng serve --port 2400 --open

İkinci yol, konumdaki yapılandırmadır:

ProjectName\node_modules\@angular-devkit\build-angular\src\dev-server\schema.json.

Schema.json dosyasında değişiklik yapın.

{
 "title": "Dev Server Target",
  "description": "Dev Server target options for Build Facade.",
  "type": "object",
  "properties": {
    "browserTarget": {
      "type": "string",
      "description": "Target to serve."
    },
    "port": {
      "type": "number",
      "description": "Port to listen on.",
      "default": 2400
    },

4
Kaynak dosyaları geçersiz kılmak veya değiştirmek istemezsiniz. angular.json, kabul edilen yanıtta belirtildiği gibi şema varsayılanlarını geçersiz kılmanın doğru yoludur.
Bjørn Lindner

6

Bunları bir dosyaya kaydedebilirsiniz, ancak koymanız gerekir .ember-cli(en azından şu anda); bkz. https://github.com/angular/angular-cli/issues/1156#issuecomment-227412924

{
"port": 4201,
"liveReload": true,
"host": "dev.domain.org",
"live-reload-port": 49153
}

edit: Şimdi bunları anterior-cli.json'da , 1.0.0-beta.30 sürümünde bulunan https://github.com/angular/angular-cli/commit/da255b0808dcbe2f9da62086baec98dacc4b7ec9 tarihinden itibaren ayarlayabilirsiniz.


5

Açısal projeyi özel ana makine / IP ve Port'ta çalıştırmayı planlıyorsanız , yapılandırma dosyasında değişiklik yapmaya gerek yoktur.

Aşağıdaki komut benim için çalıştı

ng serve --host aaa.bbb.ccc.ddd --port xxxx

Nerede,

aaa.bbb.ccc.ddd --> IP you want to run the project
xxx --> Port you want to run the project

Misal

ng serve --host 192.168.322.144 --port 6300

Benim için sonuç

resim açıklamasını buraya girin


3

Eğer pencerelerinizdeyse bunu şu şekilde yapabilirsiniz:

  1. Proje kök dizininizde, run.bat dosyası oluştur
  2. Komutunuzu bu dosyada seçtiğiniz yapılandırmalarla ekleyin. Örneğin

ng serve --host 192.168.1.2 --open

  1. Artık sunmak istediğinizde bu dosyayı tıklayıp açabilirsiniz.

Bu standart bir yol değil (rahat hissediyorum) (ki hissediyorum).


0

İşte ben package.json (açısal 6 çalışan) koymak ne:

{
  "name": "local-weather-app",
  "version": "1.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --port 5000",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

Daha sonra, başlangıç ​​içeriğini düz bir npm başlatması çeker. İçeriklere başka seçenekler de ekleyebilir



0

Sunumu çalıştırırken özellikle yerel ip adresinizin açık olmasını istiyorsanız aşağıdakileri yapabilirsiniz:

npm install internal-ip-cli --save
ng serve --open --host $(./node_modules/.bin/internal-ip --ipv4)
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.