Tetapkan host dan port default untuk ng servis dalam file konfigurasi


166

Saya ingin tahu apakah saya dapat mengatur host dan port dalam file konfigurasi jadi saya tidak perlu mengetik

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

bukannya adil

ng serve

Jawaban:


233

CLI 6+ sudut

Dalam versi terbaru dari sudut, ini diatur dalam satu angular.jsonfile konfigurasi . Contoh:

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

Anda juga dapat menggunakanng config untuk melihat / mengedit nilai:

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

CLI sudut <6

Di versi sebelumnya, ini diatur diangular-cli.json bawah defaultselemen:

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

7
Untuk mempermudah, Anda dapat menentukan 0.0.0.0bukannya host ip untuk mendengarkan semua perangkat Ethernet. Dengan cara ini baik host lokal dan alamat ip publik dapat digunakan.
Don

VS2017 tampaknya mengabaikan pengaturan port karena beberapa alasan aneh, tapi saya menggunakan trik ini dengan tambahan @man (0,0.0.0 sebagai tuan rumah) untuk setidaknya mengaktifkan koneksi jarak jauh.
Ola Berntsson

4
Tampaknya hal-hal telah berubah dalam versi terbaru dari CLI (Saya menggunakan versi 6). Lihat di sini untuk detail lebih lanjut .
Nathan Friend

Apakah ada cara untuk membuat lingkungan konfigurasi ini spesifik?
Pankaj

71

Sampai sekarang fitur itu tidak didukung, namun jika ini adalah sesuatu yang mengganggu Anda, sebuah alternatif akan ada dalam paket Anda. Json ...

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

Dengan cara ini Anda cukup menjalankan npm start

Opsi lain jika Anda ingin melakukan ini di beberapa proyek adalah membuat alias, yang berpotensi Anda beri nama ngserveyang akan menjalankan perintah di atas.


maaf, foo.bar, lihat apa? PEMBARUAN: saya menghapusnya dan berfungsi, tetapi tidak tahu.
Muhammed Moussa


29

Ini berubah dalam CLI Angular terbaru.

Nama file diubah menjadi angular.json, dan struktur juga berubah.

Inilah yang harus Anda lakukan:

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

1
Bekerja untuk saya dengan @ angular / cli versi 6.1.5
PHEDev

1
Bekerja untuk saya dengan @ angular / cli versi 7.0.6
Kerry Jones

16

Opsi lain adalah menjalankan ng serveperintah dengan --portopsi mis

ng serve --port 5050 (yaitu untuk port 5050)

Atau, perintah ng serve --port 0:, akan secara otomatis menetapkan port yang tersedia untuk digunakan.


The --port 0 bit bagus Info tapi aku tidak yakin itu menjawab pertanyaan.
Ash

Menyukai opsi --port 0 yang secara otomatis menetapkan port yang tersedia untuk digunakan ...
vinsinraw

Pertanyaannya secara khusus menanyakan bagaimana cara mengaturnya dalam file konfigurasi
Ojonugwa Jude Ochalifu

11

Kami memiliki dua cara untuk mengubah nomor port default di Angular.

Cara pertama adalah dengan perintah CLI:

ng serve --port 2400 --open

Cara kedua adalah dengan konfigurasi di lokasi:

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

Buat perubahan pada file schema.json.

{
 "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
Anda tidak ingin mengganti atau mengubah file sumber. angular.json adalah cara yang benar untuk mengganti default skema, sebagaimana disebutkan dalam jawaban yang diterima.
Bjørn Lindner


5

Jika Anda berencana untuk menjalankan proyek sudut di host kustom / IP dan Port tidak perlu membuat perubahan dalam file konfigurasi

Perintah berikut bekerja untuk saya

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

Dimana,

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

Contoh

ng serve --host 192.168.322.144 --port 6300

Hasil bagi saya adalah

masukkan deskripsi gambar di sini


3

Jika ada di windows Anda dapat melakukannya dengan cara ini:

  1. Di direktori root proyek Anda, buat file run.bat
  2. Tambahkan perintah Anda dengan konfigurasi pilihan Anda di file ini. Sebagai contoh

ng serve --host 192.168.1.2 --open

  1. Sekarang Anda dapat mengklik dan membuka file ini kapan pun Anda ingin melayani.

Ini bukan cara standar tetapi nyaman digunakan (yang saya rasakan).


0

di sini adalah apa yang saya masukkan ke package.json (menjalankan angular 6):

{
  "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"
  },

Kemudian mulai npm polos akan menarik isi awal. Bisa juga menambahkan opsi lain ke konten



0

Jika Anda ingin secara khusus membuka alamat ip lokal Anda saat menjalankan layanan Anda dapat melakukan hal berikut:

npm install internal-ip-cli --save
ng serve --open --host $(./node_modules/.bin/internal-ip --ipv4)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.