Node.js “ng serve”命令是否适用于生产?

Node.js “ng serve”命令是否适用于生产?,node.js,angular,Node.js,Angular,我正在用Angular 7构建一个小项目。当你跑的时候 ng serve 一个NodeJS服务器被旋转起来处理请求,每个请求是否都会阻塞直到处理完成?我们正在尝试评估在生产中使用此应用程序与使用更传统的应用程序服务器相比的效果。运行build--prod生成“/dist”文件夹 然后你必须把它放到网络服务器上 您可以使用Angular服务器端渲染(SSR)在node.js服务器上运行它 您不应该在生产中使用ng serve,因为它使用的是仅为开发而构建的webpack dev server n

我正在用Angular 7构建一个小项目。当你跑的时候

ng serve
一个NodeJS服务器被旋转起来处理请求,每个请求是否都会阻塞直到处理完成?我们正在尝试评估在生产中使用此应用程序与使用更传统的应用程序服务器相比的效果。

运行
build--prod
生成“/dist”文件夹

然后你必须把它放到网络服务器上

您可以使用Angular服务器端渲染(SSR)在node.js服务器上运行它

您不应该在生产中使用
ng serve
,因为它使用的是仅为开发而构建的
webpack dev server


ng serve
在引擎罩后面运行一个网页包开发服务器

开发服务器

它是为了模拟生产构建,以一种简单的方式查看最终应用程序

如果没有该命令,则需要在每次更改时重新构建所有应用程序后运行类似的命令

这是CLI提供的一个方便工具,用于简化您的开发,在任何情况下都不适合生产模式。这是一个没有安全性、没有优化、没有性能、没有。。。好吧,没有任何东西可以构成一个服务器,一个服务器。默认情况下,它甚至不会使您的应用程序在本地主机之外可访问。对于生产模式来说不是很有用

所以,请不要,我重复,不要,对生产服务器使用此命令

Run
ng prod--build
它将在“dist”文件夹中生成缩小代码。您必须上载此“dist”文件夹的文件内容。它将为加载网页提供更快的响应


有关更多详细信息,请参阅当使用
ng-serve
时,您正在生成一个带有web服务器的后端nodejs环境,以处理针对您的应用程序的请求。这是伟大的重新加载和快速启动时,开发。但是静态页面需要这样的资源是不必要的

归根结底,Angular只是一个框架,告诉你它对如何建造水疗中心的看法。无论您使用何种框架或库,最终都会得到index.xxx、Javascript文件和来自供应商或内部的其他资源文件。浏览器加载网页时,只有这些问题

因此,您需要构建应用程序以生成将要提供的静态文件(即
ng build--prod
)。那么您有两个好的选择:

  • 选择将在专用服务器(甚至容器)上为文件(即nginx)提供服务的web服务器
  • 将文件放在CDN提供程序后面。因为它们是静态的,所以它们将被缓存并提供给基于其位置请求它们的浏览器

  • 我会选择#2,而不是#1,强制您继续运行资源(CPU、RAM、HDD),以获取不经常请求的文件。我不经常这样说,因为您的SPA将在客户端的浏览器中处理自身内部的所有路由(每天至少一次将请求缓存刷新)。

    在您的应用程序上运行
    ng service--prod
    。阅读屏幕上显示的非常清晰的警告。评估结束了。使用真正的网络服务器。对,我的问题更倾向于为什么我不应该在生产中使用它。是不是因为对NodeJS服务器的每个请求都会阻塞直到处理完成?@Dave正在更新我的答案哦,还有