NG Live Development Server与传统Web服务器

Vin*_*ino 4 command-line-interface node.js typescript angular

我是Angular2的新手。我说过要通过互联网上的资源来学习。

我正在使用Angular-Cli工具来构建测试应用程序。

当我发出命令时,ng serve --open我的示例项目在默认端口4200上运行,控制台显示,

** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200 **
Run Code Online (Sandbox Code Playgroud)

现在我对NG Live Development Server非常困惑。

我有以下担忧,

  • 作为客户端框架,为什么angular需要开发服务器。

  • Live Server实际位于运行的计算机中的位置

  • Live Server只能提供Javascript或任何其他语言。
  • 将Angular2应用程序与诸如Spring-MVC的服务器端框架集成的复杂性是什么?

有人可以提供您对此的想法吗?如果我错误地理解了这些概念,请纠正我。

Mar*_*tin 6

TL live服务器仅用于本地开发。不适用于生产或本地开发人员以外的任何环境。

要回答您的特定问题:

作为客户端框架,为什么angular需要开发服务器。

Angular是一个SPA框架。需要将已编译的应用程序代码从Web服务器加载到浏览器中。

Live Server实际位于运行的计算机中的位置

该服务器是Webpack的一部分,它是Angular-CLI的依赖项。因此它位于您的node_modules文件夹中。

Live Server只能提供Javascript或任何其他语言。

开发服务器仅用于在本地开发计算机上运行Angular代码。如果您有API后端,则应该查看通过开发服务器到您的开发API的代理请求。

将Angular2应用程序与诸如Spring-MVC的服务器端框架集成的复杂性是什么?

这是微不足道的。您不会在实时开发服务器上的生产环境中托管Angular应用程序。相反,您将运行ng build --prod --aot将生产包构建到项目dist文件夹中。这些是将被部署到前端Web服务器的构建工件。将前端配置为在根竞赛www.foo.com/中运行,即将Spring API配置为在/ api上下文中运行www.foo.com/api/


qre*_*0ct 5

您可能想看看这个:

节点直播服务器

这清楚地解释了实时服务器到底是什么以及它是如何工作的:引用自链接:

服务器是一个简单的节点应用程序,为工作目录及其子目录提供服务。它还监视文件的更改,当发生更改时,它会通过 Web 套接字连接向浏览器发送一条消息,指示其重新加载。为了让客户端支持这一点,服务器向每个请求的 html 文件注入一小段 JavaScript 代码。该脚本建立 Web 套接字连接并侦听重新加载请求。通过从 DOM 中查找引用的样式表并欺骗浏览器再次获取和解析它们,可以刷新 CSS 文件,而无需重新加载整个页面。

如果您阅读整篇文章,您几乎会得到所有问题的答案。