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 有一个很好的概述和更详细的信息。
我正在使用 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 有一个很好的概述和更详细的信息。