189 votes

Définir l'hôte et le port par défaut pour ng serve dans le fichier de configuration

Je veux savoir si je peux définir un hôte et un port dans un fichier de configuration afin de ne pas avoir à taper

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

au lieu de seulement

ng serve

247voto

Toby J Points 942

Angular CLI 6+

Dans la dernière version d'Angular, ce paramètre est défini dans le fichier le site angular.json fichier de configuration . Exemple :

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

Vous pouvez également utilice ng config pour visualiser/modifier les valeurs :

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

CLI Angular <6

Dans les versions précédentes, c'était en angular-cli.json sous le defaults élément :

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

8 votes

Pour faciliter les choses, vous pouvez spécifier 0.0.0.0 au lieu de l'hôte ip pour écouter sur tous les périphériques Ethernet. De cette façon, l'hôte local et l'adresse IP publique peuvent être utilisés.

0 votes

VS2017 semble ignorer le paramètre du port pour une raison bizarre, mais j'ai utilisé cette astuce avec l'ajout de @dman (0.0.0.0 comme hôte) pour au moins permettre les connexions à distance.

4 votes

Il semble que les choses aient changé dans les versions récentes du CLI (j'utilise la version 6). Voir ici pour plus de détails .

82voto

Brocco Points 37108

Pour l'instant, cette fonctionnalité n'est pas prise en charge, mais si c'est quelque chose qui vous dérange, une alternative serait dans votre package.json...

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

De cette façon, vous pouvez simplement exécuter npm start

Une autre option si vous voulez faire cela sur plusieurs projets est de créer un alias, que vous pouvez potentiellement nommer ngserve qui exécutera votre commande ci-dessus.

0 votes

Désolé, foo.bar, se référer à quoi ? UPDATE : je l'ai enlevé et ça marche, mais je ne sais pas.

0 votes

@MuhammedMoussa remplacez foo.bar par l'adresse de l'hôte sur lequel vous voulez que votre application fonctionne.

33voto

Shreekant N Points 640

Vous pouvez configurer le port HTTP par défaut et celui utilisé par le serveur LiveReload à l'aide de deux options de ligne de commande :

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

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

32voto

arsanyf Points 373

Cela a changé dans la dernière version d'Angular CLI.

Le nom du fichier est devenu angular.json et la structure a également changé.

C'est ce que vous devriez faire :

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

1 votes

Cela a fonctionné pour moi avec la version 6.1.5 de @angular/cli.

1 votes

Cela a fonctionné pour moi avec la version 7.0.6 de @angular/cli.

16voto

Mwizak Points 1543

Une autre option consiste à exécuter ng serve avec la commande --port option, par exemple

ng serve --port 5050 (c'est-à-dire pour le port 5050)

Alternativement, la commande : ng serve --port 0 L'attribution automatique d'un port disponible pour l'utilisation.

1 votes

El --port 0 C'était une bonne info mais je ne suis pas sûr que ça réponde à la question.

0 votes

J'ai aimé l'option --port 0 qui a assigné automatiquement le port disponible à utiliser...

1 votes

La question demande spécifiquement comment le définir dans un fichier de configuration.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X