Angular 通用生产构建过程

Angular Universal Production Build Process

我正在使用 Angular Universal 10,我想预呈现我的网站。

我对生产环境的正确构建过程感到困惑。

Angular 给出了这两个命令:

"build:ssr": "ng build --prod && ng run my-app.spa:server:production",
"prerender": "ng run my-app.spa:prerender"

仅执行此操作是否足以获得生产就绪输出?

npm run prerender

还是我需要运行这两个?

npm run build:ssr
npm run prerender

有什么区别?

要了解这两个命令之间的区别,运行 一个并查看编译后的输出。

第一个命令 npm run build:ssr 会将您的站点编译成一个可以使用 NodeJS Express 应用程序提供的文件,如您在 server.ts 中所见。这样你仍然只有一个 index.html 文件,但根据你的路由,universal 会为该路由向浏览器传送一个呈现的 html 文件。所以,你是在服务端渲染,服务端渲染.

第二个命令npm run prerender将使用server.ts“预渲染”每条带有自己单独的index.html文件的路由,所有这些都放在一个目录结构中你的路线。编译后的代码看起来像一个传统的静态网站。因此,您在部署之前进行渲染,预渲染

那么哪个最适合你?

build:ssr

  • 优点:如果内容是动态创建的,则无需重新部署
  • 缺点:服务器必须始终 运行 运行可靠且快速的 NodeJS 进程。好消息是有很多方法可以做到这一点,例如,无服务器函数、应用程序引擎等。

prerender

  • 优点:您的应用程序可以托管在常规的 HTTP 服务器上
  • 缺点:添加新内容页面时可能需要重新部署

This post on Medium 有一个很好的概述和更详细的信息。