Не удалось получить команду Angular ng serve для установления контекста https - PullRequest
0 голосов
/ 17 октября 2018

Когда мы используем команду ng serve, в процессе компиляции появляется следующее сообщение:

** NG Live Development Server is running on http://localhost:4200 ** <==== более старая версия @ angular / cli </p>

** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ ** <==== последняя версия @ angular / cli </p>

Можно ли настроить сервер разработки на localhost для использования протокола https?Другими словами, в качестве URL-адреса в браузере будет корректно работать следующее:

https://localhost:4200

Мы попытались выполнить команду, показанную ниже, но она по-прежнему приводит к использованию протокола http:

ng serve my-app —-ssl true --ssl-cert "./ssl/localhost.crt" --ssl-key "./ssl/localhost.key" --open

Примечания:

  1. Выполнены надлежащие шаги для предоставления сертификата SSL для среды Mac El Capitan (правильная конфигурация сертификата SSL была подтверждена при запускесервер, имеющий URL-адрес https с использованием node.js и express).

  2. Этот результат наблюдался как в версиях @ angular / cli 1.0.0-rc.4, так и в 6.2.5

  3. Почему нам не удалось настроить сервер разработки localhost для работы в режиме https://localhost:4200?

  4. Нашей мотивацией для решения этой проблемы является то, что мы используем Facebook длявойдите в наше приложение, и теперь они требуют, чтобы вы совершали вызовы API Facebook со страницы https.У нас есть рабочая версия нашего приложения Angular, работающая по протоколу https.Однако при попытке разработать и протестировать код мы используем localhost для запуска наших тестов.Для этого нам необходимо, чтобы наша тестовая среда работала в контексте https.

1 Ответ

0 голосов
/ 26 октября 2018

Я заметил, что выдает следующую команду:

$ ng serve --ssl true --ssl-cert "./ssl/localhost.crt" --ssl-key "./ssl/localhost.key "

будет периодически корректно использовать среду https.

Следующая информация позволила решить проблему" периодически ":

Расположение кода, запускающего сервер разработки Angular: ... / node_modules/@angular/cli/tasks/server.js

Этот код можно изменить, чтобы устранить проблему с прерывистыми https, поместив следующую строку:

if (serveTaskOptions.sslKey === './ssl/localhost.key') serveTaskOptions.ssl = true;// kludge для исправления неустойчивой проблемы https

до следующей строки:

const serverAddress = url.format ({

...