如何在生产中基于 create-react-app 的项目中指定端口号?

Posted

技术标签:

【中文标题】如何在生产中基于 create-react-app 的项目中指定端口号?【英文标题】:How to specify a port number in a create-react-app based project in production? 【发布时间】:2018-01-26 13:08:08 【问题描述】:

我正在部署一个网站,其中包含一些使用 create-react-app 构建的 react 项目。每个项目将位于其自己的网页上:例如:mywebsite.com/project1、mywebsite.com/project。我正在 Ubuntu 服务器上设置 nginx 反向代理(我了解如何配置),但我不确定如何为我的每个 create-react-app 项目指定端口号,以便每个项目都有一个唯一的端口.谁能阐明如何做到这一点?谢谢!

PS - 我见过像这样的线程 - How to specify a port to run a create-react-app based project?,但我看不到这个解决方案如何应用于生产。

【问题讨论】:

【参考方案1】:

你在 create-react-app 中以npm start 命令启动的服务器是 webpack 开发服务器。它只意味着在开发时使用,您不应该在生产环境中使用它。

相反,您可以使用简单的静态文件服务器轻松托管 CRA 应用程序,该服务器可以easily configure with nginx 无需反向代理或更改开发服务器的端口。您只需运行npm run build 命令并将build 文件夹的内容部署到静态文件服务器的相应文件夹即可。您可以在the documentation of CRA 阅读更多相关信息。

此外,请确保在构建项目之前specify the homepage in your package.json,因为您将在 mywebsite.com/project1 这样的相对路径中托管您的应用程序。因为 CRA 假定您的应用托管在服务器根目录并使用默认设置。

希望这会有所帮助!

【讨论】:

您好 Tharaka,非常感谢您的回复!使用静态文件服务器托管 CRA 应用程序绝对是部署我的网站的最有效和最直接的方式。我也很欣赏主页行上的提示。我刚刚部署了一个 CRA 项目,它正在运行!

以上是关于如何在生产中基于 create-react-app 的项目中指定端口号?的主要内容,如果未能解决你的问题,请参考以下文章

如何在基于create-react-app的项目中添加字体?

为啥我在使用 create-react-app 的生产构建中丢失了 Bootstrap 样式?

create-react-app npm run start 在生产模式下。也许不可能?

create-react-app 使用代理做 mock

create-react-app 使用代理做 mock

create-react-app 使用代理做 mock