我有一个要在实例上部署的create-react-app自举项目。现在,我尝试了两种方法来设置部署,但最终只能设置端口而不是主机。
我的项目架构如下
Project
- Frontend
- Backend
我的主要问题是,尽管我能够在create-react-app构建中设置端口,但是我无法将主机名设置为0.0.0.0而不是localhost。
在创建反应的应用程序中,我在启动脚本中硬编码了HOST=0.0.0.0
和PORT=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上提供构建页面
答案 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/