“HTTPS”未被识别为内部或外部命令。

15

我想在我的Windows上运行一个React项目(作为我的Mac的虚拟机)。

在命令提示符中,运行yarn来安装依赖项后,我使用yarn start。但是它给了我'HTTPS' is not recognized as an internal or external command错误信息。

> yarn start
yarn run v1.13.0
$ HTTPS=true CERT=cert/localhost.crt KEY=cert/localhost.key umi dev
'HTTPS' is not recognized as an internal or external command,
operable program or batch file.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

有人知道如何修复这个问题吗?

编辑1:

我将node升级到v12.16.1(yarn升级到1.13.0,npm升级到6.13.4),并执行了yarn add httpsyarn add https-localhost命令。然而,yarn start仍然返回'HTTPS' is not recognized as an internal or external command

umi dev 返回'umi' 不是内部或外部命令,也不是可运行的程序或批处理文件。

>umi dev
'umi' is not recognized as an internal or external command, 
operable program or batch file.

你需要使用 https 包。可以在本地或全局安装它。 - Jai
你的意思是“SSL证书”吗? - SoftTimur
2
$ HTTPS=true CERT=cert/localhost.crt KEY=cert/localhost.key umi dev - 这看起来像是一个 shell 命令(Bourne/bash/Unix/Linux/POSIX),它在设置变量 HTTPSCERTKEY 后调用了命令 umi dev。我不熟悉 React 或 Yarn,但是它可能不支持 Windows,或者有些配置错误导致它认为它在类 Unix 系统上。 - Keith Thompson
请确保在.env文件中有以下行: HTTPS=true PORT=8080 HOST=localhost - Maf
请查看我有关有效证书的答案:https://dev59.com/llgR5IYBdhLWcg3wjNxN#72613085 - Maf
显示剩余7条评论
7个回答

9
只需将以下行添加到.env文件中:
HTTPS=true PORT=8080
HOST=localhost
如果您想使用其他主机或端口,请随意将localhost替换为所需的IP地址,将端口替换为任何可用的端口号。如果您没有.env文件,在React根文件夹中创建它即可。
完成后,您可以运行yarn start或npm start命令,您的项目将使用https而不是http协议。
如果您需要使用真实证书而不是自签名证书,请参考这里的答案:如何在create-react-app中提供SSL证书?

如果您需要使用真实证书而不是自签名证书,则可以查看我的答案:https://dev59.com/llgR5IYBdhLWcg3wjNxN#72613085 - Maf

4

我在Windows环境下遇到了类似的问题,解决方法是在设置环境变量之后以及随后的命令中加入“&&”。

示例:

set HTTPS=true set CERT=.cert/localhost.crt set KEY=.cert/localhost.key && umi dev

React 示例:

set HTTPS=true set SSL_CRT_FILE=.certificates/localhost.crt set SSL_KEY_FILE=.certificates/localhost.key && react-scripts start

4

在 Windows 系统中,你需要包含 'set' 命令,例如 "set HTTPS=true",来设置环境变量。


1

我只是在package.json文件中将 "start": "HTTPS=true react-scripts start", 改成了 "start": "react-scripts start",


1

暂时

不要这样写: "start": "CERT=cert/localhost.crt KEY=cert/localhost.key umi dev react-scripts start",

只需要这样写: "start": "react-scripts start",


1
我刚在Windows上遇到了同样的问题,但我使用Git Bash而不是“命令提示符”。 因此,如果您喜欢Git Bash,则此答案可能对您有所帮助。
步骤一:保留package.json原始形式,我们将在下一步中添加环境变量: package.json
  1. 第二步:创建一个文件来设置环境变量:

    在此处输入图片描述


  1. 第三步:将您的环境变量添加到该文件中。对于我而言,`set` 命令无效,但是 `export` 命令有效:

    enter image description here

注意:默认端口为3000,因此如果您没有在此文件中导出端口,则React将在“https://localhost:3000”上启动。


  1. 第四步:对文件进行source。你基本上有两个选项:
    • 选项一:为了仅在当前会话中使用这些变量:
      enter image description here

    • 选项二:为了在任何会话中使用这些变量,请将以下行添加到你的~/.bashrc文件中:
      enter image description here


  1. 第五步:运行 npm startyarn start,您应该在本地使用 https:

    enter image description here

注意:我没有导出端口,在这里只使用默认端口3000。


0
只需添加HTTPS=true就足以使其工作。
如果端口不是3000,您可以在.env文件中添加更多内容,例如PORT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接