微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何将ReactJS NodeJS Express应用程序部署到AWS?

我有一个ReactJS NodeJS / Expressjs Webpack / Babel应用程序,并希望将其部署到AWS上.

我的问题是,我必须分别部署ReactJS和NodeJS / Expressjs吗?还是可以一起部署在一起?

另外,我的堆栈提到的任何好的指南?看起来,但似乎都是特定的,无论是NodeJS还是ReactJS.最近发现它为https://www.youtube.com/watch?v=WxhFq64FQzA,但我相信它只涵盖了NodeJS / Expressjs而不是ReactJS.

目前该应用程序是一个项目,包括所有的ReactJS NodeJS / Expressjs Webpack / Babel.

解决方法

如果你有两个不同的项目

例如一个React single-page app一个Node / Express API.

一个.你可以部署

> S3CloudFront(tutorial)的前端(React应用)
>后端(Node API)在Elastic Beanstalk(推荐)或EC2

否则,您可以在Elastic BeanstalkEC2上同时部署两个部件.在这样做时,您会错过在S3和CloudFront上托管的好处,即为用户提供更快的交付和更便宜的成本.在我看来,它更容易,更快速,更实用,更不容易出现错误,可以单独更新和部署Web应用程序的客户端和服务器端.

湾为什么S3 CloudFront而不是S3?

>所有the benefits of using a CDN
>您自己的域名和一个免费的SSL证书一键
>重定向4xx错误(如果您的应用程序使用基于HTML5历史记录的路由器,则必需)
>缓存系统
> http2和http到https重定向

C.如何处理CORS?

您可以使用不同的子域,例如

> API的api.domain.com
> app.domain.com的应用程序

然后enable CORS在API中:

app.get('/api',cors({ origin: 'https://app.domain.com' }),...)

2.如果你有一个项目

例如一个Node应用程序,包括一些React视图.

您必须在Elastic BeanstalkEC2部署整个应用程序.

注意:如果您有一个项目,包括两个子项目(即React应用程序的文件夹,另一个用于Node API),并且如果两个子项目在分离时仍然可以工作,那么可以部署子项目,项目分开(见答案的第一部分).

在这两种情况下

在部署React部件之前运行您的Webpack/Babel production build.您可以手动执行(在部署在AWS之前)或自动(在CI/CD系统中).

4.如果不限于AWS

我刚刚回答a related question不限于AWS.

原文地址:https://www.jb51.cc/js/151251.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐