Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何通过https在生产中部署react应用程序?_Node.js_Reactjs_Https_Environment Variables_Production - Fatal编程技术网

Node.js 如何通过https在生产中部署react应用程序?

Node.js 如何通过https在生产中部署react应用程序?,node.js,reactjs,https,environment-variables,production,Node.js,Reactjs,Https,Environment Variables,Production,我有一个React应用程序,它使用一个.env.production文件在HTTPS上运行良好,其中包含: HTTPS=true SSL_CRT_FILE=/etc/ssl/certs/mycert.crt SSL_KEY_FILE=/etc/ssl/private/mykey.key package.json文件包含: "scripts": { "start": "env-cmd -f .env.production react-scripts start", "build:pr

我有一个React应用程序,它使用一个.env.production文件在HTTPS上运行良好,其中包含:

HTTPS=true
SSL_CRT_FILE=/etc/ssl/certs/mycert.crt
SSL_KEY_FILE=/etc/ssl/private/mykey.key
package.json文件包含:

"scripts": {
   "start": "env-cmd -f .env.production react-scripts start",
   "build:production": "env-cmd -f .env.production react-scripts build"
}
当我这样做时:

npm start
一切正常,我可以从任何地方通过HTTPS访问我的服务器。现在,这是一件有趣的事情,现在我做到了:

npm run build:production
这也很好,我得到:

The build folder is ready to be deployed.
You may serve it with a static server:

serve -s build
现在,这就是失败的原因:

1) 当我使用上面的serve命令时,.env.production文件中的环境变量不会被拾取!为什么?

2) 如果我手动传递环境变量,如中所示:

HTTPS=true SSL_CRT_FILE=/etc/ssl/certs/mycert.crt SSL_KEY_FILE=/etc/ssl/private/mykey.key PORT=8580 serve -s build 

似乎只拾取了端口变量,但服务器现在在HTTP上运行。知道为什么吗

当您运行
npm start
时,会在引擎盖下为您启动一个开发服务器,该服务器配置为自动拾取SSL\u CRT\u文件、SSL\u密钥\u文件和HTTPS环境变量

SERVICE
不会这样做,您需要使用以下CLI标志告知它:

serve -s build --listen 8580 --ssl-cert "/etc/ssl/certs/mycert.crt" --ssl-key "/etc/ssl/private/mykey.key"

当您运行
npm start
时,会在引擎盖下为您启动一个开发服务器,该服务器配置为自动拾取SSL\u CRT\u文件、SSL\u密钥\u文件和HTTPS环境变量

SERVICE
不会这样做,您需要使用以下CLI标志告知它:

serve -s build --listen 8580 --ssl-cert "/etc/ssl/certs/mycert.crt" --ssl-key "/etc/ssl/private/mykey.key"

react脚本启动开发服务器。千万不要把它用于生产。要在生产中使用React,请在适当的web服务器上构建项目和服务器。React-scripts start启动开发服务器。千万不要把它用于生产。要在生产中使用React,请在适当的web服务器上构建项目和服务器。