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
cre8
sumber

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"
    }
  }
}
Tobias J
sumber
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.

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

Anda dapat mengkonfigurasi port HTTP default dan yang digunakan oleh server LiveReload dengan dua opsi baris perintah:

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

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

Shreekant N
sumber
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
                }
            }
        }
        ...
    }
}
arsanyf
sumber
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.

Mwiza
sumber
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
    },
Satyendra Patel
sumber
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

Kemangi
sumber
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).

Sankeerth Mahurkar
sumber
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

John Dugger
sumber
0

masukkan deskripsi gambar di sini

Hanya satu hal yang harus Anda lakukan. Ketikkan ini di Command Prompt Anda: ng serve --port 4021 [atau port lain yang ingin Anda tetapkan misalnya: 5050, 5051 dll]. Tidak perlu melakukan perubahan pada file.

Shahbaz Ali Khan
sumber
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)
Kim T
sumber