无法获取 Angular ng serve 命令来建立 https 上下文
Unable to get Angular ng serve command to establish an https context
当我们使用ng serve
命令时,在编译过程中出现如下信息:
** NG Live Development Server is running on http://localhost:4200
** <==== @angular/cli
的旧版本
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/
** <==== @angular/cli
的最新版本
是否可以在localhost上配置开发服务器使用https协议?换句话说,以下内容可以在浏览器中作为 URL 正常工作:
我们尝试了如下所示的命令,但它仍然导致使用 http 协议:
ng serve my-app —-ssl true --ssl-cert "./ssl/localhost.crt" --ssl-key "./ssl/localhost.key" --open
备注:
已遵循正确的步骤为 Mac El Capitan 环境提供 SSL 证书(已通过启动具有 https URL 利用 node.js 表达)。
在@angular/cli 1.0.0-rc.4 和 6.2.5
版本中都观察到了这个结果
为什么我们无法配置 localhost 开发服务器以在 https://localhost:4200 下运行?
我们解决这个问题的动机是我们使用 Facebook 登录我们的应用程序,他们现在要求您从 https 页面进行 Facebook API 调用。我们通过 https Angular 应用 运行ning 的生产版本。但是,在尝试开发和测试代码时,我们使用 localhost 来 运行 我们的测试。为此,我们需要在 https 上下文中运行我们的测试环境。
我观察到发出以下命令:
$ 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 to fix intermittent https problem
在以下行之前:
const serverAddress = url.format({
当我们使用ng serve
命令时,在编译过程中出现如下信息:
** NG Live Development Server is running on http://localhost:4200
** <==== @angular/cli
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/
** <==== @angular/cli
是否可以在localhost上配置开发服务器使用https协议?换句话说,以下内容可以在浏览器中作为 URL 正常工作:
我们尝试了如下所示的命令,但它仍然导致使用 http 协议:
ng serve my-app —-ssl true --ssl-cert "./ssl/localhost.crt" --ssl-key "./ssl/localhost.key" --open
备注:
已遵循正确的步骤为 Mac El Capitan 环境提供 SSL 证书(已通过启动具有 https URL 利用 node.js 表达)。
在@angular/cli 1.0.0-rc.4 和 6.2.5
版本中都观察到了这个结果
为什么我们无法配置 localhost 开发服务器以在 https://localhost:4200 下运行?
我们解决这个问题的动机是我们使用 Facebook 登录我们的应用程序,他们现在要求您从 https 页面进行 Facebook API 调用。我们通过 https Angular 应用 运行ning 的生产版本。但是,在尝试开发和测试代码时,我们使用 localhost 来 运行 我们的测试。为此,我们需要在 https 上下文中运行我们的测试环境。
我观察到发出以下命令:
$ 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 to fix intermittent https problem
在以下行之前:
const serverAddress = url.format({