Установить хост по умолчанию и порт для ng serve в файле конфигурации


166

Я хочу знать, могу ли я установить хост и порт в файле конфигурации, чтобы мне не приходилось печатать

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

вместо просто

ng serve

Ответы:


233

Угловой CLI 6+

В последней версии углового, это установлено в в angular.jsonконфигурационном файле . Пример:

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

Вы также можете использоватьng config для просмотра / редактирования значений:

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

Угловой CLI <6

В предыдущих версиях это было установленоangular-cli.json под defaultsэлементом:

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

7
Чтобы упростить задачу, вы можете указать 0.0.0.0вместо хоста ip для прослушивания на всех устройствах Ethernet. Таким образом, можно использовать как локальный, так и публичный IP-адрес.
Дман

VS2017, кажется, игнорирует настройку порта по какой-то странной причине, но я использовал этот трюк с добавлением @dman (0.0.0.0 в качестве хоста), чтобы хотя бы включить удаленные соединения.
Ола Бернтссон

4
Кажется, что в последних версиях CLI все изменилось (я использую версию 6). Смотрите здесь для более подробной информации .
Натан Френд

Есть ли способ сделать эту среду конфигурации специфичной?
Панкадж

71

На данный момент эта функция не поддерживается, однако, если вас это беспокоит, альтернативой будет ваш package.json ...

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

Таким образом, вы можете просто запустить npm start

Другой вариант, если вы хотите сделать это в нескольких проектах, - это создать псевдоним, который вы можете назвать, ngserveкоторый будет выполнять вышеуказанную команду.


извините, foo.bar, обратитесь к чему? ОБНОВЛЕНИЕ: я удалил это и работает, но не знаю.
Мухаммед Мусса


29

Это изменилось в последней версии Angular CLI.

Имя файла изменилось на angular.json, и структура также изменилась.

Вот что вы должны сделать:

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

1
Работал для меня с @ angular / cli версии 6.1.5
PHEDev

1
Работал для меня с @ angular / cli версия 7.0.6
Керри Джонс

16

Другой вариант - запустить ng serveкоманду с --portпараметром, например:

ng serve --port 5050 (т.е. для порта 5050)

В качестве альтернативы команда: ng serve --port 0автоматически назначит доступный порт для использования.


--port 0 Бит был хорошей информацией , но я не уверен , что он отвечает на вопрос.
Ash

Понравилась опция --port 0, которая автоматически назначала доступный порт для использования ...
vinsinraw

В частности, вопрос
Ojonugwa Jude Ochalifu

11

У нас есть два способа изменить номер порта по умолчанию в Angular.

Первый способ - команда CLI:

ng serve --port 2400 --open

Второй способ заключается в конфигурации на месте:

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

Внесите изменения в файл 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
Вы не хотите переопределять или изменять исходные файлы. angular.json - это правильный способ переопределения значений по умолчанию схемы, как указано в принятом ответе.
Бьорн Линднер

6

Вы можете сохранить их в файле, но вам нужно их вставить .ember-cli(на данный момент, по крайней мере); см. https://github.com/angular/angular-cli/issues/1156#issuecomment-227412924

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

редактировать: теперь вы можете установить их в angular-cli.json с момента фиксации https://github.com/angular/angular-cli/commit/da255b0808dcbe2f9da62086baec98dacc4b7ec9 , который находится в сборке 1.0.0-бета.30


5

Если вы планируете запускать угловой проект на настраиваемом хосте / IP и порте, нет необходимости вносить изменения в конфигурационный файл

У меня сработала следующая команда

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

Куда,

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

пример

ng serve --host 192.168.322.144 --port 6300

Результат для меня был

введите описание изображения здесь


3

Если вы используете Windows, вы можете сделать это следующим образом:

  1. В корневом каталоге вашего проекта создайте файл run.bat
  2. Добавьте вашу команду с вашим выбором конфигураций в этом файле. Например

ng serve --host 192.168.1.2 --open

  1. Теперь вы можете щелкнуть и открыть этот файл, когда захотите.

Это не стандартный способ, но удобный в использовании (что я чувствую).


0

вот что я положил в package.json (работает под углом 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"
  },

Тогда простой запуск npm будет вытягивать содержимое запуска. Могут также добавить другие параметры к содержанию



0

Если вы хотите, чтобы ваш локальный IP-адрес был открыт при запуске ng serve, вы можете сделать следующее:

npm install internal-ip-cli --save
ng serve --open --host $(./node_modules/.bin/internal-ip --ipv4)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.