原因 因为 H5 的 摄像头 SDK 只能在 https 环境中运行,为了开发方便,本地搭建https开发环境
本次使用webpack devserver搭建本地https开发环境,查询webpack配置后得知,还有两个问题需要我们解决,域名 和 证书。
一、域名:
windows 系统:C:\WINDOWS\system32\drivers\etc 文件下 ,用记事本打开 hosts 文件 在下面添加这么一段:192.168.1.98 jydeng.dev 就可以了 注意中间有空格
就可以使用http://jydeng.dev 访问了
linux下hosts文件位置:/etc/hosts
二、证书:证书我们使用mkcert签发。
使用Chocolatey安装,Chocolatey是Windows上的包管理工具,
官网
https://chocolatey.org/
以管理员运行shell
执行命令
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://community.chocolatey.org/install.ps1’))
回车即可
下面安装mkcert
shell 中执行
choco install mkcert
使用mkcert生成根证书
mkcert -install
创建目录存放域名证书和私钥
我是放在E:hjj文件下
mkdir ca 创建ca文件
cd ca
生成所需域名对应的本地证书,例如 jydeng.dev
mkcert jydeng.dev
拷贝证书到项目目录下
配置devServer开启 https 参考一下webpack文档中devServer那一章
devServer: {
host: “jydeng.dev”,
port: 80,
disableHostCheck: true,
https: {
key: fs.readFileSync(path.resolve(__dirname, “./https/jydeng.dev-key.pem”)),
cert: fs.readFileSync(path.resolve(__dirname, “./https/jydeng.dev.pem”)),
},
}
注意 fs是node服务 需要定义
const fs = require(‘fs’)
const path = require(‘path’)
const https = require(‘https’) //可有可无 我其他地方用
注意路径 ./https/jydeng.dev-key.pem
需在文件下创建https路径才能找到