该配置由 Modern.js Builder 提供,更多信息可参考 dev.https。
boolean | { key: string; cert: string }
false
配置该选项后,可以开启 Dev Server 对 HTTPS 的支持,同时会禁用 HTTP 服务器。
开启前:
> Local: http://localhost:8080/
> Network: http://192.168.0.1:8080/
开启后:
> Local: https://localhost:8080/
> Network: https://192.168.0.1:8080/
你可以直接将 https
设置为 true
,Builder 会基于 devcert 来自动生成 Dev Server 所需的 HTTPS 证书。
使用这种方式时,你需要在当前项目中手动安装 devcert 依赖:
# npm
npm install devcert@1.2.2 -D
# yarn
yarn add devcert@1.2.2 -D
# pnpm
pnpm add devcert@1.2.2 -D
然后配置 dev.https
为 true
即可:
export default {
dev: {
https: true,
},
};
该方式有一定局限性,由于 devcert 目前不支持 IP addresses,因此访问 Network 域名时,会遇到「您的连接不是私密连接」的问题。
此问题的解决方法为:点击 Chrome 浏览器问题页面的「高级」->「继续前往 192.168.0.1(不安全)」。
https 代理自动安装证书需要获取 root 权限, 请根据提示输入密码即可。 密码仅在信任证书时使用,不会泄漏或者用于其他环节。
你也可以在 dev.https
选项中手动传入 HTTPS 服务器所需要的证书和对应的私钥,这个参数将直接传递给 Node.js 中 https 模块的 createServer。
具体可以参考 https.createServer。
import fs from 'fs';
export default {
dev: {
https: {
key: fs.readFileSync('certificates/private.pem'),
cert: fs.readFileSync('certificates/public.pem'),
},
},
};