今天打开一个VUE项目,手机调试需要扫描条码,但是http模式下调用不了摄像头,要用https。
问了ai说要在终端执行命令:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
执行之后报错:
openssl : 无法将“openssl”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -day ...
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (openssl:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
这个问题就需要去OpenSSL的官方网站,安装后,再添加 OpenSSL 到环境变量,添加步骤:
1.打开控制面板,进入“系统与安全” > “系统” > “高级系统设置” > “环境变量”。
2.在系统变量中找到名为 Path 的变量,双击编辑。
3.添加 OpenSSL 的安装路径,比如我的是 D:\Program Files\OpenSSL-Win64\bin,然后点击“确定”。
最后在配置文件vue.config.js中,添加配置
module.exports = {
devServer: {
https: true,
key: fs.readFileSync('path/to/key.pem'),
cert: fs.readFileSync('path/to/cert.pem'),
}
};
这个是ai的答案,不过我的项目中,并没有添加key节点和cert节点,只有https:true,结果也是可以调用摄像头的。