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实际位于运行的计算机中的位置
有人可以提供您对此的想法吗?如果我错误地理解了这些概念,请纠正我。
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/
。
您可能想看看这个:
这清楚地解释了实时服务器到底是什么以及它是如何工作的:引用自链接:
服务器是一个简单的节点应用程序,为工作目录及其子目录提供服务。它还监视文件的更改,当发生更改时,它会通过 Web 套接字连接向浏览器发送一条消息,指示其重新加载。为了让客户端支持这一点,服务器向每个请求的 html 文件注入一小段 JavaScript 代码。该脚本建立 Web 套接字连接并侦听重新加载请求。通过从 DOM 中查找引用的样式表并欺骗浏览器再次获取和解析它们,可以刷新 CSS 文件,而无需重新加载整个页面。
如果您阅读整篇文章,您几乎会得到所有问题的答案。