如何使creat-react-app构建在0.0.0.0而不是localhost上侦听?

时间:2019-07-16 09:35:36

标签: reactjs

我有一个要在实例上部署的create-react-app自举项目。现在,我尝试了两种方法来设置部署,但最终只能设置端口而不是主机。

我的项目架构如下

Project
- Frontend
- Backend

我的主要问题是,尽管我能够在create-react-app构建中设置端口,但是我无法将主机名设置为0.0.0.0而不是localhost。

在创建反应的应用程序中,我在启动脚本中硬编码了HOST=0.0.0.0PORT=443

我尝试过的另一件事是有一个脚本在端口443上提供页面。构建在端口443上提供,但不在0.0.0.0上提供。

创建反应应用程序脚本

"scripts": {
        "start": "HOST=0.0.0.0 PORT=443 react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test",
        "eject": "react-scripts eject"
    },

位于项目根目录的基本脚本


"scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "client": "cd frontend && npm start",
        "client-prod": "cd frontend/build && npm install -g serve && serve -s build -l 443",
        "server": "cd backend && npm start",
        "sass": "node-sass -w frontend/source/styles/ -o frontend/source/styles/ --recursive",
        "dev": "concurrently \"npm run server\" \"npm run client\" ",
        "prod": "concurrently \"npm run server\" \"npm run client-prod\" "
    },

在localhost上的开发工作正常,但我需要在0.0.0.0:443而不是localhost上提供构建页面

2 个答案:

答案 0 :(得分:0)

我不建议您在0.0.0.0上运行您的应用程序,但将其保留在本地主机上,然后使用ngnix代理将流量从公共接口重定向到本地主机。

如果您使用的是Linux,则可以使用此视频教程来了解如何正确部署nodejs应用程序(后端/前端)。

https://www.youtube.com/watch?v=1OU5ngq-WyM&list=PLQlWzK5tU-gDyxC1JTpyC2avvJlt3hrIh

答案 1 :(得分:0)

env文件而不是位于项目的根目录中,并设置HOST = 0.0.0.0;如果您还想在键入yarn或npm start时禁用浏览器的自动打开功能,则还可以将BROWSER = none设置为。检查此链接以获取更多信息https://create-react-app.dev/docs/advanced-configuration/