Legen Sie den Standardhost und -port für ng serve in der Konfigurationsdatei fest


165

Ich möchte wissen, ob ich einen Host und einen Port in einer Konfigurationsdatei festlegen kann, damit ich nicht eingeben muss

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

statt nur

ng serve

Antworten:


233

Angular CLI 6+

In der neuesten Version von Angular ist dies in der angular.jsonKonfigurationsdatei festgelegt . Beispiel:

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

Sie können auch verwendenng config , anzuzeigen / zu bearbeiten Werte:

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

Winkel-CLI <6

In früheren Versionen wurde diese in Setangular-cli.json unter dem defaultsElemente:

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

7
Zur Vereinfachung können Sie 0.0.0.0anstelle der Host-IP angeben, dass alle Ethernet-Geräte abgehört werden sollen. Auf diese Weise können sowohl der lokale Host als auch die öffentliche IP-Adresse verwendet werden.
Dman

VS2017 scheint die Porteinstellung aus irgendeinem seltsamen Grund zu ignorieren, aber ich habe diesen Trick mit @dmans Zusatz (0.0.0.0 als Host) verwendet, um zumindest Remoteverbindungen zu aktivieren.
Ola Berntsson

4
Es scheint, dass sich die Dinge in den letzten Versionen der CLI geändert haben (ich verwende Version 6). Weitere Details finden Sie hier .
Nathan Friend

Gibt es eine Möglichkeit, diese Konfigurationsumgebung spezifisch zu gestalten?
Pankaj

71

Ab sofort wird diese Funktion nicht unterstützt. Wenn Sie dies jedoch stört, finden Sie eine Alternative in Ihrem package.json ...

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

Auf diese Weise können Sie einfach laufen npm start

Eine weitere Option, wenn Sie dies für mehrere Projekte tun möchten, besteht darin, einen Alias ​​zu erstellen, den Sie möglicherweise benennen ngservekönnen, um den obigen Befehl auszuführen.


Entschuldigung, foo.bar, worauf beziehen? UPDATE: Ich habe es entfernt und funktioniert, aber ich weiß es nicht.
Muhammed Moussa


28

Dies hat sich in der neuesten Angular CLI geändert.

Der Dateiname wurde in geändert angular.json, und die Struktur wurde ebenfalls geändert.

Folgendes sollten Sie tun:

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

1
Arbeitete für mich mit @ angle / cli Version 6.1.5
PHEDev

1
Arbeitete für mich mit @ angle / cli Version 7.0.6
Kerry Jones

16

Eine andere Option besteht darin, einen ng serveBefehl mit der --portOption z

ng serve --port 5050 (dh für Port 5050)

Alternativ weist der Befehl : ng serve --port 0, automatisch einen verfügbaren Port zur Verwendung zu.


Das --port 0 bisschen war eine nette Info, aber ich bin nicht sicher, ob es die Frage beantwortet.
Ash

Gefiel die Option --port 0, die automatisch den verfügbaren Port für die Verwendung zugewiesen hat ...
vinsinraw

Die Frage fragt speziell, wie man es in einer Konfigurationsdatei
einstellt

11

Wir haben zwei Möglichkeiten, die Standardportnummer in Angular zu ändern.

Der erste Weg ist per CLI-Befehl:

ng serve --port 2400 --open

Der zweite Weg ist durch Konfiguration am Standort:

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

Nehmen Sie Änderungen in der Datei schema.json vor.

{
 "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
Sie möchten keine Quelldateien überschreiben oder ändern. angular.json ist der richtige Weg, um Schema-Standardeinstellungen zu überschreiben, wie in der akzeptierten Antwort erwähnt.
Bjørn Lindner

6

Sie können diese in einer Datei speichern, müssen sie jedoch .ember-cli(zumindest im Moment) ablegen. Siehe https://github.com/angular/angular-cli/issues/1156#issuecomment-227412924

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

Bearbeiten: Sie können diese jetzt in angular-cli.json ab Commit https://github.com/angular/angular-cli/commit/da255b0808dcbe2f9da62086baec98dacc4b7ec9 festlegen , das sich in Build 1.0.0-beta.30 befindet


5

Wenn Sie das Winkelprojekt in benutzerdefiniertem Host / IP und Port ausführen möchten, müssen Sie keine Änderungen an der Konfigurationsdatei vornehmen

Der folgende Befehl hat bei mir funktioniert

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

Wo,

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

Beispiel

ng serve --host 192.168.322.144 --port 6300

Ergebnis für mich war

Geben Sie hier die Bildbeschreibung ein


3

Wenn Sie unter Windows arbeiten, können Sie dies folgendermaßen tun:

  1. Erstellen Sie in Ihrem Projektstammverzeichnis die Datei run.bat
  2. Fügen Sie Ihren Befehl mit der von Ihnen gewählten Konfiguration in dieser Datei hinzu. Beispielsweise

ng serve --host 192.168.1.2 --open

  1. Jetzt können Sie auf diese Datei klicken und sie öffnen, wann immer Sie sie bereitstellen möchten.

Dies ist keine Standardmethode, aber bequem zu bedienen (was ich fühle).


0

Folgendes habe ich in package.json eingefügt (mit Winkel 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"
  },

Dann zieht ein einfacher npm-Start den Inhalt des Starts ein. Könnte auch andere Optionen zum Inhalt hinzufügen



0

Wenn Sie Ihre lokale IP-Adresse beim Ausführen von ng serve speziell öffnen möchten, können Sie Folgendes tun:

npm install internal-ip-cli --save
ng serve --open --host $(./node_modules/.bin/internal-ip --ipv4)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.