Angular / CLI: Как изменить порт для автоматической перезагрузки?

1

Поскольку я понимаю, что при запуске ng serve приложение Angular, опробуйте сервер dev, чтобы узнать, нужна ли перезагрузка. Ожидается, что этот сервер будет жить на порту 4200 (по умолчанию).

Я запускаю среду dev с несколькими контейнерами докеров, чтобы сохранить все красивое и изолированное. Поэтому некоторые из моих угловых приложений прослушивают разные порты. Кажется, это приводит к появлению следующего сообщения об ошибке в моей консоли браузера каждые две секунды:

zone.js:2744 GET http://localhost:4200/sockjs-node/info?t=1518533495440 net::ERR_EMPTY_RESPONSE

Где я могу изменить конфигурацию, чтобы указать клиента живой перезагрузки в правильном направлении? angular-cli.json, похоже, ничего не делает.

Теги:
angular
angular-cli

3 ответа

4
Лучший ответ

Я нашел решение. Вы должны запустить ng serve с --public-host (aliases: --live-reload-client). Поэтому я адаптировал свою команду start в package.json из

"start": "ng serve --host 0.0.0.0"

в

"start": "ng serve --host 0.0.0.0 --live-reload-client http://localhost:4400"

Все дело в том, что я не хочу менять порт самого сервера dev. Он должен работать внутри контейнера Docker на порту 4200. Но порт 4200 отображается в Docker на внешний порт 4400 (в моем случае). Я вызываю http://localhost: 4400 для запуска приложения в своем браузере, а клиент перезагрузки также должен вызывать http://localhost: 4400 для обновлений. Но он называется http://localhost: 4200. С параметром --live-reload-client все работает.

  • 0
    это сработало для меня и ng serve --public-host http://localhost:4200 . URL в адресной строке 9090, который прокси на 4200 (но не может прокси веб-сокеты)
0

Вы можете настроить HTTP-порт по умолчанию и тот, который используется сервером LiveReload, с двумя параметрами командной строки:

ng serve --host 0.0.0.0 --port 4201 --live-reload-port 49153
  • 0
    Это недопустимый параметр: параметр '--live-reload-port' не зарегистрирован с помощью команды serve.
0

Вы можете изменить порт с помощью --port

ng serve --port 4201

Запустит сервер на порту 4201

  • 0
    Я не хочу менять порт самого приложения. Он работает внутри контейнера докера на 4200, но отображается на порт 4400 снаружи. Вот что создает эту проблему в первую очередь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню