在节点 JS 上通过 HTTPS 进行 LiveReload 将不起作用

问题描述

在我不得不更改为 https 之前,它一直运行良好。 这是我的 livereload 配置:

const express = require("express");
const app = express();
const path = require('path');
const livereload = require('livereload')
const connectLiveReload = require('connect-livereload')


const liveReloadServer = livereload.createServer();
liveReloadServer.watch(publicDirectory)
liveReloadServer.server.once("connection",()=>{
    setTimeout(() => {
        liveReloadServer.refresh("/");
    },200);
})

app.use(connectLiveReload());

它开始显示错误是:

enter image description here

当然,它不会接受更改和重新加载。

解决方法

来自软件包 livereload here

的 npm 页面

服务器 API

createServer() 方法接受两个参数。

首先是一些配置选项,作为 JavaScript 传递 对象:

  • https 是要传递给的选项的可选对象 https.createServer(如果未提供,则使用 http.createServer 代替)

可以查看 NodeJS 文档 https.createServer here

由此,我认为 liveReloadServer 的配置将是这样的,您使用您的 SSL 证书和密钥:

const liveReloadServer = livereload.createServer({
    https : {
        key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
    }
});