create-react-app:如何使用https而不是http?

Rin*_*ngo 47 reactjs create-react-app

我想知道是否有人知道如何在dev上使用https来实现'create-react-app'环境.我在README或快速谷歌搜索中看不到任何相关内容.我只想要https:// localhost:3000工作,或者https:// localhost:3001.

Ste*_*nas 60

HTTPS=true在运行start命令之前设置.

文档

该实现使用HTTPS环境变量来确定启动服务器时使用的协议.

  • 你刚刚在Windows上运行`HTTPS = true && npm start`,你需要`set HTTPS = true && npm start`. (5认同)
  • 我试过这个。我在 Windows 10 上运行:HTTPS=true&&npm start 这似乎不起作用。我像往常一样收到以下控制台消息:编译成功!您现在可以在浏览器中查看 x-app。本地:http://localhost:3000/ 在您的网络上:http://192.168.2.4:3000/ (3认同)
  • 在像 Mac 这样的 UNIX 系统上,您可以将其导出到您的配置文件中。在 Windows 上有一种等效的方法来全局设置环境变量,但我不熟悉它。但是,在项目级别,应该在启动之前初始化“dotenv”,因此您可以尝试将“HTTPS=true”添加到“.env.development”中 (2认同)
  • @Ringo派对有点晚了,但是[这显示了如何为Java设置`PATH`](https://www.java.com/en/download/help/path.xml).对于任何环境变量,它都是相同的过程,例如`HTTPS`或`NODE_ENV`或Windows上有什么东西.您也可以打开Windows资源管理器,右键单击*此PC*,选择*属性*,然后选择*高级系统设置*,然后单击*环境变量*按钮...&利润. (2认同)

Smi*_*tty 19

您可以编辑package.json脚本部分以阅读:

"scripts": { "start": "set HTTPS=true&&react-scripts start", ... }

或者只是跑步 set HTTPS=true&&npm start

只是一个旁注,对我来说,由于某种原因,这个改变打破了热重装......

- 注意:操作系统=== Windows 10 64位

  • 为了让这个工作无需每次我都把它放在我的package.json中,但我不得不省略`set`和`&&`来使它在我的iMac上工作.所以我只使用了`HTTPS = true react-scripts start` (8认同)

Abh*_*agi 12

set HTTPS=true&&react-scripts startscript > start: of package.json 中,如下所示。

“脚本”的package.json

"scripts": {
    "start": "set HTTPS=true&&react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
Run Code Online (Sandbox Code Playgroud)
  • 请不要在命令之间留下任何空格,即HTTPS=true && npm start不会起作用。

参考官方文档。 在开发中使用 HTTPS

(注意:缺少空格是有意的。)


bes*_*hes 11

在MAC/UNIX的情况下

export HTTPS=true
npm start
Run Code Online (Sandbox Code Playgroud)

或简单的一个班轮

export HTTPS=true&&npm start
Run Code Online (Sandbox Code Playgroud)

或者将package.json中的启动脚本更新为

"start": "export HTTPS=true&&PORT=3000 react-scripts start",

你应该能够点击https.


Hit*_*ahu 11

Windows (cmd.exe)

set HTTPS=true&&npm start
Run Code Online (Sandbox Code Playgroud)

(注意:缺少空格是有意的。)

Windows (Powershell)

($env:HTTPS = "true") -and (npm start)
Run Code Online (Sandbox Code Playgroud)

Linux、macOS (Bash)

HTTPS=true npm start
Run Code Online (Sandbox Code Playgroud)

请注意,服务器将使用自签名证书,因此您的 Web 浏览器几乎肯定会在访问该页面时显示警告。

自定义 SSL 证书

HTTPS=true SSL_CRT_FILE=<SSLCert.crt> SSL_KEY_FILE=<SSLCert.key> npm start
Run Code Online (Sandbox Code Playgroud)

Linux、macOS (Bash)

HTTPS=true SSL_CRT_FILE=<SSLCert.crt> SSL_KEY_FILE=<SSLCert.key> npm start
Run Code Online (Sandbox Code Playgroud)

为了避免每次都这样做: 您可以像这样在 npm start 脚本中包含:

{
  "start": "HTTPS=true react-scripts start"
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用HTTPS=true创建一个.env文件


wm1*_*1sr 7

您还可以在项目的根目录中创建一个名为.env的文件,然后编写

HTTPS=true
Run Code Online (Sandbox Code Playgroud)

之后,只需像平常一样运行“ npm start”来启动应用程序即可。

文件:https//facebook.github.io/create-react-app/docs/advanced-configuration

作品无论在Linux和Windows,不像在这里发布了一些其他的答案。


Gyu*_*hoi 7

我认为值得一提的是设置PORT=443默认HTTPS标准端口。可以避免:PORT每次浏览时在地址末尾添加附件。

su
export HTTPS=true 
export PORT=443
export SSL_CRT_FILE=/PATH/TO/cert.pem     # recommended
export SSL_KEY_FILE=/PATH/TO/privkey.pem  # recommended
npm start
Run Code Online (Sandbox Code Playgroud)

或者

你可以将它们全部放入package.json

  "scripts": {
    "start": "HTTPS=true PORT=443 react-scripts start",
Run Code Online (Sandbox Code Playgroud)

然后,无需exporting:

su
npm start
Run Code Online (Sandbox Code Playgroud)


Akh*_*esh 7

"scripts": {
"start": "set HTTPS=true&&set PORT=443&&react-scripts start",
........
}
Run Code Online (Sandbox Code Playgroud)

如果您需要更改端口并将其设置为 https。


小智 6

添加到文件 .env(或 .env.local)行:HTTPS=true


小智 5

请在命令提示符下使用

 set HTTPS=true&&npm start
Run Code Online (Sandbox Code Playgroud)