Reactjs 创建react应用程序:如何使用https而不是http?
我想知道是否有人知道如何在“createreact-app”环境的dev上使用https。我在自述或快速谷歌搜索中看不到任何关于这方面的信息。我只想让它工作,否则。在运行start命令之前设置Reactjs 创建react应用程序:如何使用https而不是http?,reactjs,create-react-app,Reactjs,Create React App,我想知道是否有人知道如何在“createreact-app”环境的dev上使用https。我在自述或快速谷歌搜索中看不到任何关于这方面的信息。我只想让它工作,否则。在运行start命令之前设置HTTPS=true 该实现使用来确定启动服务器时要使用的内容。您可以编辑package.json脚本部分以阅读: “脚本”:{ “开始”:“设置HTTPS=true&&react脚本开始”, ... } 或者只运行set HTTPS=true&&npm start 只是一个旁注,对我来说,由于某种原因,
HTTPS=true
该实现使用来确定启动服务器时要使用的内容。您可以编辑package.json脚本部分以阅读:
“脚本”:{
“开始”:“设置HTTPS=true&&react脚本开始”,
...
}
或者只运行set HTTPS=true&&npm start
只是一个旁注,对我来说,由于某种原因,进行此更改会中断热加载
--注意:OS==Windows 10 64位可能需要在服务器和浏览器上安装自签名CA链。 如果是MAC/UNIX do
export HTTPS=true
npm start
还是简单的一行
export HTTPS=true&&npm start
或者将package.json中的启动脚本更新为
“开始”:“导出HTTPS=true&&PORT=3000反应脚本开始”,
您应该能够点击https
HTTPS=true npm start
在CreateReact应用程序上为我工作的终端中,我无法使其工作(设置HTTPS=true),而是使用 反应https重定向 围绕
应用程序
组件的简单包装。
请在命令提示符中使用此选项
set HTTPS=true&&npm start
您还可以在项目的根目录中创建一个名为.env的文件,然后编写
HTTPS=true
在这之后,只需像通常一样运行“npm start”即可启动应用程序
文件:
与此处发布的一些其他答案不同,它在Linux和Windows上都能工作。在scripts>start:of package.json中设置HTTPS=true&&react scripts start,如下所示 package.json中的“脚本”:
"scripts": {
"start-dev": "set HTTPS=true&&set PORT=443&&react-scripts start"
},
- 请不要在命令之间留下任何空格,即,
将不起作用李>HTTPS=true&&npm start
我认为值得一提的是设置
PORT=443
,默认HTTPS
标准端口。
每次浏览时,可以避免在地址末尾附加:PORT
su
导出HTTPS=true
出口端口=443
导出SSL_CRT_文件=/PATH/TO/cert.pem#建议
导出SSL_KEY_FILE=/PATH/TO/privkey.pem#建议
npm启动
或
您可以将它们全部放入package.json
:
“脚本”:{
“开始”:“HTTPS=true端口=443反应脚本开始”,
然后,在不导出的情况下:
su
npm start
如果由于“您的连接不是私有的”问题(在chrome中),它仍然不能正常工作,这对我来说很好: 简言之:
在Windows环境中,向package.json添加以下行:
"scripts": {
"start-dev": "set HTTPS=true&&set PORT=443&&react-scripts start"
},
它将使用https和端口443启动开发服务器。
目前,NodeJs已经知道如何正确运行这个bug,但它在NodeJs v8.11.3中工作-对我来说。您可以创建一个代理。HTTPS->HTTP 创建密钥和证书
openssl-req-nodes-new-x509-keyout server.key-out server.cert
创建一个名为proxyServer.js的文件
var httpProxy = require('http-proxy');
let fs = require('fs');
httpProxy.createServer({
target: {
host: 'localhost',
port: 3000
},
ssl: {
key: fs.readFileSync('server.key', 'utf8'),
cert: fs.readFileSync('server.cert', 'utf8')
}
}).listen(3000);
从终端运行
node proxyServer.js
我使用的是windows10,我也遇到了同样的问题。
我意识到你需要:
set HTTPS=true&&npm start
“脚本”:{
“开始”:“设置HTTPS=true&&react脚本开始”,
(...)
}
set HTTPS=true&&set PORT=443&&react脚本启动
请注意一些字符之间没有留下的空白空间。您可以浏览此文件以获取更多详细信息。到目前为止,我使用的是Windows 10最新版本的Windows Insider程序 使用Windows 10时,似乎有三种情况:
文档:编辑package.json文件并更改启动安全域的启动脚本。例如https
{
"name": "social-login",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.4.1",
"react-dom": "^16.4.1",
"react-facebook-login": "^4.0.1",
"react-google-login": "^3.2.1",
"react-scripts": "1.1.4"
},
"scripts": {
// update this line "start": "HTTPS=true react-scripts start",
"start": "set HTTPS=true&&react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
谢谢为了避免Chrome和Safari中出现不可信的证书错误,您应该手动指定一个自签名密钥对.CRA 另外,使用
.env
文件来存储这些变量
在macOS上,只需将您的证书添加到Keychain Access,然后在其详细信息中设置“始终信任”
"scripts": {
"start": "set HTTPS=true&&set PORT=443&&react-scripts start",
........
}
如果您需要更改端口并将其设置为https。Windows(cmd.exe)
(注意:缺少空格是故意的。)
Windows(Powershell)
Linux、macOS(Bash)
注意服务器将使用自签名证书,因此您的web浏览器在访问页面时几乎肯定会显示警告
自定义SSL证书
或者您可以创建一个.env文件,其中HTTPS=true对于Windows,请尝试此文件
($env:HTTPS = "true") -and (npm start)
我正在使用VS代码终端(powershell).我尝试了此操作。我在Windows 10上运行:HTTPS=true&&npm start此操作似乎不起作用。我像往常一样收到以下控制台消息:编译成功!您现在可以在浏览器中查看x-app。本地:在您的网络上:您的建议似乎与对安全API服务的代理调用有关
{
"name": "social-login",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.4.1",
"react-dom": "^16.4.1",
"react-facebook-login": "^4.0.1",
"react-google-login": "^3.2.1",
"react-scripts": "1.1.4"
},
"scripts": {
// update this line "start": "HTTPS=true react-scripts start",
"start": "set HTTPS=true&&react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
"scripts": {
"start": "set HTTPS=true&&set PORT=443&&react-scripts start",
........
}
set HTTPS=true&&npm start
($env:HTTPS = "true") -and (npm start)
HTTPS=true npm start
HTTPS=true SSL_CRT_FILE=<SSLCert.crt> SSL_KEY_FILE=<SSLCert.key> npm start
HTTPS=true SSL_CRT_FILE=<SSLCert.crt> SSL_KEY_FILE=<SSLCert.key> npm start
{
"start": "HTTPS=true react-scripts start"
}
($env:HTTPS = "true") -and (npm start)